src/core/net/sf/basedb/util/extensions/logging/LogEntry.java

Code
Comments
Other
Rev Date Author Line
8125 09 Mar 23 nicklas 1 /**
8125 09 Mar 23 nicklas 2   $Id$
8125 09 Mar 23 nicklas 3
8125 09 Mar 23 nicklas 4   Copyright (C) 2023 Nicklas Nordborg
8125 09 Mar 23 nicklas 5
8125 09 Mar 23 nicklas 6   This file is part of BASE - BioArray Software Environment.
8125 09 Mar 23 nicklas 7   Available at http://base.thep.lu.se/
8125 09 Mar 23 nicklas 8
8125 09 Mar 23 nicklas 9   BASE is free software; you can redistribute it and/or
8125 09 Mar 23 nicklas 10   modify it under the terms of the GNU General Public License
8125 09 Mar 23 nicklas 11   as published by the Free Software Foundation; either version 3
8125 09 Mar 23 nicklas 12   of the License, or (at your option) any later version.
8125 09 Mar 23 nicklas 13
8125 09 Mar 23 nicklas 14   BASE is distributed in the hope that it will be useful,
8125 09 Mar 23 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
8125 09 Mar 23 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
8125 09 Mar 23 nicklas 17   GNU General Public License for more details.
8125 09 Mar 23 nicklas 18
8125 09 Mar 23 nicklas 19   You should have received a copy of the GNU General Public License
8125 09 Mar 23 nicklas 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
8125 09 Mar 23 nicklas 21 */
8125 09 Mar 23 nicklas 22 package net.sf.basedb.util.extensions.logging;
8125 09 Mar 23 nicklas 23
8125 09 Mar 23 nicklas 24 import java.util.Date;
8125 09 Mar 23 nicklas 25
8125 09 Mar 23 nicklas 26 import net.sf.basedb.core.DateUtil;
8125 09 Mar 23 nicklas 27 import net.sf.basedb.util.error.ThrowableUtil;
8125 09 Mar 23 nicklas 28
8125 09 Mar 23 nicklas 29 /**
8125 09 Mar 23 nicklas 30   An entry in the log.
8125 09 Mar 23 nicklas 31 */
8125 09 Mar 23 nicklas 32 public class LogEntry
8125 09 Mar 23 nicklas 33 {
8125 09 Mar 23 nicklas 34   private final long timestamp;
8125 09 Mar 23 nicklas 35   private final LogLevel level;
8125 09 Mar 23 nicklas 36   private final String message;
8125 09 Mar 23 nicklas 37   private final Throwable t;
8125 09 Mar 23 nicklas 38   
8125 09 Mar 23 nicklas 39   LogEntry(LogLevel level, String message, Throwable t)
8125 09 Mar 23 nicklas 40   {
8125 09 Mar 23 nicklas 41     this.timestamp = System.currentTimeMillis();
8125 09 Mar 23 nicklas 42     this.level = level;
8125 09 Mar 23 nicklas 43     this.message = message;
8125 09 Mar 23 nicklas 44     this.t = t;
8125 09 Mar 23 nicklas 45   }
8125 09 Mar 23 nicklas 46   
8125 09 Mar 23 nicklas 47   /**
8125 09 Mar 23 nicklas 48     The level of the log entry.
8125 09 Mar 23 nicklas 49   */
8125 09 Mar 23 nicklas 50   public LogLevel getLevel()
8125 09 Mar 23 nicklas 51   {
8125 09 Mar 23 nicklas 52     return level;
8125 09 Mar 23 nicklas 53   }
8125 09 Mar 23 nicklas 54   
8125 09 Mar 23 nicklas 55   /**
8125 09 Mar 23 nicklas 56     The timestamp of the log entry.
8125 09 Mar 23 nicklas 57   */
8125 09 Mar 23 nicklas 58   public long getTimestamp()
8125 09 Mar 23 nicklas 59   {
8125 09 Mar 23 nicklas 60     return timestamp;
8125 09 Mar 23 nicklas 61   }
8125 09 Mar 23 nicklas 62   
8125 09 Mar 23 nicklas 63   /**
8125 09 Mar 23 nicklas 64     The timestamp of the log entry as a date.
8125 09 Mar 23 nicklas 65   */
8125 09 Mar 23 nicklas 66   public Date getDate()
8125 09 Mar 23 nicklas 67   {
8125 09 Mar 23 nicklas 68     return new Date(timestamp);
8125 09 Mar 23 nicklas 69   }
8125 09 Mar 23 nicklas 70   
8125 09 Mar 23 nicklas 71   /**
8125 09 Mar 23 nicklas 72     Get the log message.
8125 09 Mar 23 nicklas 73   */
8125 09 Mar 23 nicklas 74   public String getMessage()
8125 09 Mar 23 nicklas 75   {
8125 09 Mar 23 nicklas 76     return message;
8125 09 Mar 23 nicklas 77   }
8125 09 Mar 23 nicklas 78   
8125 09 Mar 23 nicklas 79   /**
8125 09 Mar 23 nicklas 80     Get the stacktrace of the log entry.
8125 09 Mar 23 nicklas 81   */
8125 09 Mar 23 nicklas 82   public Throwable getStacktrace()
8125 09 Mar 23 nicklas 83   {
8125 09 Mar 23 nicklas 84     return t;
8125 09 Mar 23 nicklas 85   }
8125 09 Mar 23 nicklas 86
8125 09 Mar 23 nicklas 87   @Override
8125 09 Mar 23 nicklas 88   public String toString() 
8125 09 Mar 23 nicklas 89   {
8125 09 Mar 23 nicklas 90     String s = "["+level.name()+"] ["+DateUtil.formatTimestamp(getDate())+"] "+message;
8125 09 Mar 23 nicklas 91     if (t != null)
8125 09 Mar 23 nicklas 92     {
8125 09 Mar 23 nicklas 93       s+="\n"+ThrowableUtil.stackTraceToString(t);
8125 09 Mar 23 nicklas 94     }
8125 09 Mar 23 nicklas 95     return s;
8125 09 Mar 23 nicklas 96   }
8125 09 Mar 23 nicklas 97   
8125 09 Mar 23 nicklas 98 }