Class SimpleLogger
- java.lang.Object
-
- org.slf4j.helpers.NamedLoggerBase
-
- org.slf4j.helpers.MarkerIgnoringBase
-
- org.slf4j.impl.SimpleLogger
-
- All Implemented Interfaces:
java.io.Serializable
,Logger
public class SimpleLogger extends MarkerIgnoringBase
Simple implementation of
Logger
that sends all enabled log messages, for all defined loggers, to the console (System.err
). The following system properties are supported to configure the behavior of this logger:org.slf4j.simpleLogger.logFile
- The output target which can be the path to a file, or the special values "System.out" and "System.err". Default is "System.err".org.slf4j.simpleLogger.cacheOutputStream
- If the output target is set to "System.out" or "System.err" (see preceding entry), by default, logs will be output to the latest value referenced bySystem.out/err
variables. By setting this parameter to true, the output stream will be cached, i.e. assigned once at initialization time and re-used independently of the current value referenced bySystem.out/err
.org.slf4j.simpleLogger.defaultLogLevel
- Default log level for all instances of SimpleLogger. Must be one of ("trace", "debug", "info", "warn", "error" or "off"). If not specified, defaults to "info".org.slf4j.simpleLogger.log.a.b.c
- Logging detail level for a SimpleLogger instance named "a.b.c". Right-side value must be one of "trace", "debug", "info", "warn", "error" or "off". When a SimpleLogger named "a.b.c" is initialized, its level is assigned from this property. If unspecified, the level of nearest parent logger will be used, and if none is set, then the value specified byorg.slf4j.simpleLogger.defaultLogLevel
will be used.org.slf4j.simpleLogger.showDateTime
- Set totrue
if you want the current date and time to be included in output messages. Default isfalse
org.slf4j.simpleLogger.dateTimeFormat
- The date and time format to be used in the output messages. The pattern describing the date and time format is defined bySimpleDateFormat
. If the format is not specified or is invalid, the number of milliseconds since start up will be output.org.slf4j.simpleLogger.showThreadName
-Set totrue
if you want to output the current thread name. Defaults totrue
.org.slf4j.simpleLogger.showLogName
- Set totrue
if you want the Logger instance name to be included in output messages. Defaults totrue
.org.slf4j.simpleLogger.showShortLogName
- Set totrue
if you want the last component of the name to be included in output messages. Defaults tofalse
.org.slf4j.simpleLogger.levelInBrackets
- Should the level string be output in brackets? Defaults tofalse
.org.slf4j.simpleLogger.warnLevelString
- The string value output for the warn level. Defaults toWARN
.
In addition to looking for system properties with the names specified above, this implementation also checks for a class loader resource named
"simplelogger.properties"
, and includes any matching definitions from this resource (if it exists).With no configuration, the default output includes the relative time in milliseconds, thread name, the level, logger name, and the message followed by the line separator for the host. In log4j terms it amounts to the "%r [%t] %level %logger - %m%n" pattern.
Sample output follows.
176 [main] INFO examples.Sort - Populating an array of 2 elements in reverse order. 225 [main] INFO examples.SortAlgo - Entered the sort method. 304 [main] INFO examples.SortAlgo - Dump of integer array: 317 [main] INFO examples.SortAlgo - Element [0] = 0 331 [main] INFO examples.SortAlgo - Element [1] = 1 343 [main] INFO examples.Sort - The next log statement should be an error message. 346 [main] ERROR examples.SortAlgo - Tried to dump an uninitialized array. at org.log4j.examples.SortAlgo.dump(SortAlgo.java:58) at org.log4j.examples.Sort.main(Sort.java:64) 467 [main] INFO examples.Sort - Exiting main method.
This implementation is heavily inspired by Apache Commons Logging's SimpleLog.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CACHE_OUTPUT_STREAM_STRING_KEY
private static SimpleLoggerConfiguration
CONFIG_PARAMS
protected int
currentLogLevel
The current log levelstatic java.lang.String
DATE_TIME_FORMAT_KEY
static java.lang.String
DEFAULT_LOG_LEVEL_KEY
private static boolean
INITIALIZED
static java.lang.String
LEVEL_IN_BRACKETS_KEY
static java.lang.String
LOG_FILE_KEY
static java.lang.String
LOG_KEY_PREFIX
protected static int
LOG_LEVEL_DEBUG
protected static int
LOG_LEVEL_ERROR
protected static int
LOG_LEVEL_INFO
protected static int
LOG_LEVEL_OFF
protected static int
LOG_LEVEL_TRACE
protected static int
LOG_LEVEL_WARN
private static long
serialVersionUID
private java.lang.String
shortLogName
The short name of this simple log instancestatic java.lang.String
SHOW_DATE_TIME_KEY
static java.lang.String
SHOW_LOG_NAME_KEY
static java.lang.String
SHOW_SHORT_LOG_NAME_KEY
static java.lang.String
SHOW_THREAD_NAME_KEY
private static long
START_TIME
static java.lang.String
SYSTEM_PREFIX
All system properties used bySimpleLogger
start with this prefixstatic java.lang.String
WARN_LEVEL_STRING_KEY
-
Fields inherited from class org.slf4j.helpers.NamedLoggerBase
name
-
Fields inherited from interface org.slf4j.Logger
ROOT_LOGGER_NAME
-
-
Constructor Summary
Constructors Constructor Description SimpleLogger(java.lang.String name)
Package access allows onlySimpleLoggerFactory
to instantiate SimpleLogger instances.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.String
computeShortName()
void
debug(java.lang.String msg)
A simple implementation which logs messages of level DEBUG according to the format outlined above.void
debug(java.lang.String format, java.lang.Object param1)
Perform single parameter substitution before logging the message of level DEBUG according to the format outlined above.void
debug(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level DEBUG according to the format outlined above.void
debug(java.lang.String format, java.lang.Object param1, java.lang.Object param2)
Perform double parameter substitution before logging the message of level DEBUG according to the format outlined above.void
debug(java.lang.String msg, java.lang.Throwable t)
Log a message of level DEBUG, including an exception.void
error(java.lang.String msg)
A simple implementation which always logs messages of level ERROR according to the format outlined above.void
error(java.lang.String format, java.lang.Object arg)
Perform single parameter substitution before logging the message of level ERROR according to the format outlined above.void
error(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level ERROR according to the format outlined above.void
error(java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)
Perform double parameter substitution before logging the message of level ERROR according to the format outlined above.void
error(java.lang.String msg, java.lang.Throwable t)
Log a message of level ERROR, including an exception.private void
formatAndLog(int level, java.lang.String format, java.lang.Object... arguments)
For formatted messages, first substitute arguments and then log.private void
formatAndLog(int level, java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)
For formatted messages, first substitute arguments and then log.private java.lang.String
getFormattedDate()
void
info(java.lang.String msg)
A simple implementation which logs messages of level INFO according to the format outlined above.void
info(java.lang.String format, java.lang.Object arg)
Perform single parameter substitution before logging the message of level INFO according to the format outlined above.void
info(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level INFO according to the format outlined above.void
info(java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)
Perform double parameter substitution before logging the message of level INFO according to the format outlined above.void
info(java.lang.String msg, java.lang.Throwable t)
Log a message of level INFO, including an exception.(package private) static void
init()
boolean
isDebugEnabled()
Aredebug
messages currently enabled?boolean
isErrorEnabled()
Areerror
messages currently enabled?boolean
isInfoEnabled()
Areinfo
messages currently enabled?protected boolean
isLevelEnabled(int logLevel)
Is the given log level currently enabled?boolean
isTraceEnabled()
Aretrace
messages currently enabled?boolean
isWarnEnabled()
Arewarn
messages currently enabled?(package private) static void
lazyInit()
private void
log(int level, java.lang.String message, java.lang.Throwable t)
This is our internal implementation for logging regular (non-parameterized) log messages.void
log(LoggingEvent event)
(package private) java.lang.String
recursivelyComputeLevelString()
protected java.lang.String
renderLevel(int level)
void
trace(java.lang.String msg)
A simple implementation which logs messages of level TRACE according to the format outlined above.void
trace(java.lang.String format, java.lang.Object param1)
Perform single parameter substitution before logging the message of level TRACE according to the format outlined above.void
trace(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level TRACE according to the format outlined above.void
trace(java.lang.String format, java.lang.Object param1, java.lang.Object param2)
Perform double parameter substitution before logging the message of level TRACE according to the format outlined above.void
trace(java.lang.String msg, java.lang.Throwable t)
Log a message of level TRACE, including an exception.void
warn(java.lang.String msg)
A simple implementation which always logs messages of level WARN according to the format outlined above.void
warn(java.lang.String format, java.lang.Object arg)
Perform single parameter substitution before logging the message of level WARN according to the format outlined above.void
warn(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level WARN according to the format outlined above.void
warn(java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)
Perform double parameter substitution before logging the message of level WARN according to the format outlined above.void
warn(java.lang.String msg, java.lang.Throwable t)
Log a message of level WARN, including an exception.(package private) void
write(java.lang.StringBuilder buf, java.lang.Throwable t)
To avoid intermingling of log messages and associated stack traces, the two operations are done in a synchronized block.protected void
writeThrowable(java.lang.Throwable t, java.io.PrintStream targetStream)
-
Methods inherited from class org.slf4j.helpers.MarkerIgnoringBase
debug, debug, debug, debug, debug, error, error, error, error, error, info, info, info, info, info, isDebugEnabled, isErrorEnabled, isInfoEnabled, isTraceEnabled, isWarnEnabled, toString, trace, trace, trace, trace, trace, warn, warn, warn, warn, warn
-
Methods inherited from class org.slf4j.helpers.NamedLoggerBase
getName, readResolve
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
START_TIME
private static long START_TIME
-
LOG_LEVEL_TRACE
protected static final int LOG_LEVEL_TRACE
- See Also:
- Constant Field Values
-
LOG_LEVEL_DEBUG
protected static final int LOG_LEVEL_DEBUG
- See Also:
- Constant Field Values
-
LOG_LEVEL_INFO
protected static final int LOG_LEVEL_INFO
- See Also:
- Constant Field Values
-
LOG_LEVEL_WARN
protected static final int LOG_LEVEL_WARN
- See Also:
- Constant Field Values
-
LOG_LEVEL_ERROR
protected static final int LOG_LEVEL_ERROR
- See Also:
- Constant Field Values
-
LOG_LEVEL_OFF
protected static final int LOG_LEVEL_OFF
- See Also:
- Constant Field Values
-
INITIALIZED
private static boolean INITIALIZED
-
CONFIG_PARAMS
private static final SimpleLoggerConfiguration CONFIG_PARAMS
-
currentLogLevel
protected int currentLogLevel
The current log level
-
shortLogName
private transient java.lang.String shortLogName
The short name of this simple log instance
-
SYSTEM_PREFIX
public static final java.lang.String SYSTEM_PREFIX
All system properties used bySimpleLogger
start with this prefix- See Also:
- Constant Field Values
-
LOG_KEY_PREFIX
public static final java.lang.String LOG_KEY_PREFIX
- See Also:
- Constant Field Values
-
CACHE_OUTPUT_STREAM_STRING_KEY
public static final java.lang.String CACHE_OUTPUT_STREAM_STRING_KEY
- See Also:
- Constant Field Values
-
WARN_LEVEL_STRING_KEY
public static final java.lang.String WARN_LEVEL_STRING_KEY
- See Also:
- Constant Field Values
-
LEVEL_IN_BRACKETS_KEY
public static final java.lang.String LEVEL_IN_BRACKETS_KEY
- See Also:
- Constant Field Values
-
LOG_FILE_KEY
public static final java.lang.String LOG_FILE_KEY
- See Also:
- Constant Field Values
-
SHOW_SHORT_LOG_NAME_KEY
public static final java.lang.String SHOW_SHORT_LOG_NAME_KEY
- See Also:
- Constant Field Values
-
SHOW_LOG_NAME_KEY
public static final java.lang.String SHOW_LOG_NAME_KEY
- See Also:
- Constant Field Values
-
SHOW_THREAD_NAME_KEY
public static final java.lang.String SHOW_THREAD_NAME_KEY
- See Also:
- Constant Field Values
-
DATE_TIME_FORMAT_KEY
public static final java.lang.String DATE_TIME_FORMAT_KEY
- See Also:
- Constant Field Values
-
SHOW_DATE_TIME_KEY
public static final java.lang.String SHOW_DATE_TIME_KEY
- See Also:
- Constant Field Values
-
DEFAULT_LOG_LEVEL_KEY
public static final java.lang.String DEFAULT_LOG_LEVEL_KEY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SimpleLogger
SimpleLogger(java.lang.String name)
Package access allows onlySimpleLoggerFactory
to instantiate SimpleLogger instances.
-
-
Method Detail
-
lazyInit
static void lazyInit()
-
init
static void init()
-
recursivelyComputeLevelString
java.lang.String recursivelyComputeLevelString()
-
log
private void log(int level, java.lang.String message, java.lang.Throwable t)
This is our internal implementation for logging regular (non-parameterized) log messages.- Parameters:
level
- One of the LOG_LEVEL_XXX constants defining the log levelmessage
- The message itselft
- The exception whose stack trace should be logged
-
renderLevel
protected java.lang.String renderLevel(int level)
-
write
void write(java.lang.StringBuilder buf, java.lang.Throwable t)
To avoid intermingling of log messages and associated stack traces, the two operations are done in a synchronized block.- Parameters:
buf
-t
-
-
writeThrowable
protected void writeThrowable(java.lang.Throwable t, java.io.PrintStream targetStream)
-
getFormattedDate
private java.lang.String getFormattedDate()
-
computeShortName
private java.lang.String computeShortName()
-
formatAndLog
private void formatAndLog(int level, java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)
For formatted messages, first substitute arguments and then log.- Parameters:
level
-format
-arg1
-arg2
-
-
formatAndLog
private void formatAndLog(int level, java.lang.String format, java.lang.Object... arguments)
For formatted messages, first substitute arguments and then log.- Parameters:
level
-format
-arguments
- a list of 3 ore more arguments
-
isLevelEnabled
protected boolean isLevelEnabled(int logLevel)
Is the given log level currently enabled?- Parameters:
logLevel
- is this level enabled?
-
isTraceEnabled
public boolean isTraceEnabled()
Aretrace
messages currently enabled?- Returns:
- True if this Logger is enabled for the TRACE level, false otherwise.
-
trace
public void trace(java.lang.String msg)
A simple implementation which logs messages of level TRACE according to the format outlined above.- Parameters:
msg
- the message string to be logged
-
trace
public void trace(java.lang.String format, java.lang.Object param1)
Perform single parameter substitution before logging the message of level TRACE according to the format outlined above.- Parameters:
format
- the format stringparam1
- the argument
-
trace
public void trace(java.lang.String format, java.lang.Object param1, java.lang.Object param2)
Perform double parameter substitution before logging the message of level TRACE according to the format outlined above.- Parameters:
format
- the format stringparam1
- the first argumentparam2
- the second argument
-
trace
public void trace(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level TRACE according to the format outlined above.- Parameters:
format
- the format stringargArray
- a list of 3 or more arguments
-
trace
public void trace(java.lang.String msg, java.lang.Throwable t)
Log a message of level TRACE, including an exception.- Parameters:
msg
- the message accompanying the exceptiont
- the exception (throwable) to log
-
isDebugEnabled
public boolean isDebugEnabled()
Aredebug
messages currently enabled?- Returns:
- True if this Logger is enabled for the DEBUG level, false otherwise.
-
debug
public void debug(java.lang.String msg)
A simple implementation which logs messages of level DEBUG according to the format outlined above.- Parameters:
msg
- the message string to be logged
-
debug
public void debug(java.lang.String format, java.lang.Object param1)
Perform single parameter substitution before logging the message of level DEBUG according to the format outlined above.- Parameters:
format
- the format stringparam1
- the argument
-
debug
public void debug(java.lang.String format, java.lang.Object param1, java.lang.Object param2)
Perform double parameter substitution before logging the message of level DEBUG according to the format outlined above.- Parameters:
format
- the format stringparam1
- the first argumentparam2
- the second argument
-
debug
public void debug(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level DEBUG according to the format outlined above.- Parameters:
format
- the format stringargArray
- a list of 3 or more arguments
-
debug
public void debug(java.lang.String msg, java.lang.Throwable t)
Log a message of level DEBUG, including an exception.- Parameters:
msg
- the message accompanying the exceptiont
- the exception (throwable) to log
-
isInfoEnabled
public boolean isInfoEnabled()
Areinfo
messages currently enabled?- Returns:
- True if this Logger is enabled for the INFO level, false otherwise.
-
info
public void info(java.lang.String msg)
A simple implementation which logs messages of level INFO according to the format outlined above.- Parameters:
msg
- the message string to be logged
-
info
public void info(java.lang.String format, java.lang.Object arg)
Perform single parameter substitution before logging the message of level INFO according to the format outlined above.- Parameters:
format
- the format stringarg
- the argument
-
info
public void info(java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)
Perform double parameter substitution before logging the message of level INFO according to the format outlined above.- Parameters:
format
- the format stringarg1
- the first argumentarg2
- the second argument
-
info
public void info(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level INFO according to the format outlined above.- Parameters:
format
- the format stringargArray
- a list of 3 or more arguments
-
info
public void info(java.lang.String msg, java.lang.Throwable t)
Log a message of level INFO, including an exception.- Parameters:
msg
- the message accompanying the exceptiont
- the exception (throwable) to log
-
isWarnEnabled
public boolean isWarnEnabled()
Arewarn
messages currently enabled?- Returns:
- True if this Logger is enabled for the WARN level, false otherwise.
-
warn
public void warn(java.lang.String msg)
A simple implementation which always logs messages of level WARN according to the format outlined above.- Parameters:
msg
- the message string to be logged
-
warn
public void warn(java.lang.String format, java.lang.Object arg)
Perform single parameter substitution before logging the message of level WARN according to the format outlined above.- Parameters:
format
- the format stringarg
- the argument
-
warn
public void warn(java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)
Perform double parameter substitution before logging the message of level WARN according to the format outlined above.- Parameters:
format
- the format stringarg1
- the first argumentarg2
- the second argument
-
warn
public void warn(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level WARN according to the format outlined above.- Parameters:
format
- the format stringargArray
- a list of 3 or more arguments
-
warn
public void warn(java.lang.String msg, java.lang.Throwable t)
Log a message of level WARN, including an exception.- Parameters:
msg
- the message accompanying the exceptiont
- the exception (throwable) to log
-
isErrorEnabled
public boolean isErrorEnabled()
Areerror
messages currently enabled?- Returns:
- True if this Logger is enabled for the ERROR level, false otherwise.
-
error
public void error(java.lang.String msg)
A simple implementation which always logs messages of level ERROR according to the format outlined above.- Parameters:
msg
- the message string to be logged
-
error
public void error(java.lang.String format, java.lang.Object arg)
Perform single parameter substitution before logging the message of level ERROR according to the format outlined above.- Parameters:
format
- the format stringarg
- the argument
-
error
public void error(java.lang.String format, java.lang.Object arg1, java.lang.Object arg2)
Perform double parameter substitution before logging the message of level ERROR according to the format outlined above.- Parameters:
format
- the format stringarg1
- the first argumentarg2
- the second argument
-
error
public void error(java.lang.String format, java.lang.Object... argArray)
Perform double parameter substitution before logging the message of level ERROR according to the format outlined above.- Parameters:
format
- the format stringargArray
- a list of 3 or more arguments
-
error
public void error(java.lang.String msg, java.lang.Throwable t)
Log a message of level ERROR, including an exception.- Parameters:
msg
- the message accompanying the exceptiont
- the exception (throwable) to log
-
log
public void log(LoggingEvent event)
-
-