public abstract class AbstractLog extends Object implements Log
Log
interface, and
supply next methods:
isLoggable(LogLevel)
: to test if log level is loggable,
log(LogLevel, String)
: to write log message if requested level is loggable,
Log.dump(Object, Throwable)
: to dump throwable stack trace to this logger using fatal
level,
Log.print(LogLevel, String)
: to write message directly to logger with specified logging level.
This class also provides utility methods for message normalization and ellipsis.
Modifier and Type | Field and Description |
---|---|
private static String |
ELLIPSIS
Ellipsis constant.
|
Constructor and Description |
---|
AbstractLog() |
Modifier and Type | Method and Description |
---|---|
void |
bug(boolean expectedCondition,
String message,
Object... args)
Bug message variant with integrated condition test.
|
void |
bug(String message,
Object... args)
Write a message about a condition that is likely to be a bug.
|
void |
debug(Object message)
Write object message to logger if
debug level is enabled. |
void |
debug(String message,
Object... args)
Write formatted message to this logger if
debug level is enabled. |
protected static String |
ellipsis(String message,
int maxLength)
Ensure message is not larger than requested maximum length.
|
void |
error(Object message)
Write object message to logger if
error level is enabled. |
void |
error(String message,
Object... args)
Write formatted message to this logger if
error level is enabled. |
void |
fatal(Object message)
Write object message to logger if
fatal level is enabled. |
void |
fatal(String message,
Object... args)
Write formatted message to this logger if
fatal level is enabled. |
private static String |
format(String message,
Object... args)
Return formatted string with arguments injected or original message if format or arguments are invalid.
|
void |
info(Object message)
Write object message to logger if
info level is enabled. |
void |
info(String message,
Object... args)
Write formatted message to this logger if
info level is enabled. |
private static boolean |
isArrayLike(Object object)
An object is array like if is an actual array or a collection.
|
protected abstract boolean |
isLoggable(LogLevel level)
Test if log level is loggable.
|
private static Iterable<?> |
iterable(Object object)
Create an iterator supplied via Iterable interface.
|
protected abstract void |
log(LogLevel level,
String message)
Write log message if requested level is loggable.
|
protected static String |
message(Object message)
Normalize log message.
|
void |
trace(Object message)
Write object message to logger if
trace level is enabled. |
void |
trace(String message,
Object... args)
Write formatted message to this logger if
trace level is enabled. |
void |
warn(Object message)
Write object message to logger if
warn level is enabled. |
void |
warn(String message,
Object... args)
Write formatted message to this logger if
warn level is enabled. |
private static final String ELLIPSIS
protected abstract boolean isLoggable(LogLevel level)
level
- log level.protected abstract void log(LogLevel level, String message)
message
argument is null this method is NOP.level
- log level,message
- log message, possible null.public void trace(Object message)
Log
trace
level is enabled. This method converts object message to string and
write it as a single log record. Note that string conversion is performed even if given object message is a
Throwable
. If one needs throwable stack dump should explicitly use Log.dump(Object, Throwable)
.public void trace(String message, Object... args)
Log
trace
level is enabled. This method uses formatted message to
build the string message and write it as a single log record. Note that the actual string building is performed only only
if level is enabled.
Message should be formatted as defined by String.format(String, Object...)
standard method. It is caller
responsibility to ensure the number and type of given argument match formatted message place holders. If message is not
well formed or arguments are invalid log record is silently discarded.
public void debug(Object message)
Log
debug
level is enabled. See Log.trace(Object)
for details.public void debug(String message, Object... args)
Log
debug
level is enabled. See Log.trace(String, Object...)
for
details.public void info(Object message)
Log
info
level is enabled. See Log.trace(Object)
for details.public void info(String message, Object... args)
Log
info
level is enabled. See Log.trace(String, Object...)
for
details.public void warn(Object message)
Log
warn
level is enabled. See Log.trace(Object)
for details.public void warn(String message, Object... args)
Log
warn
level is enabled. See Log.trace(String, Object...)
for
details.public void error(Object message)
Log
error
level is enabled. See Log.trace(Object)
for details.public void error(String message, Object... args)
Log
error
level is enabled. See Log.trace(String, Object...)
for
details.public void fatal(Object message)
Log
fatal
level is enabled. See Log.trace(Object)
for details.public void fatal(String message, Object... args)
Log
fatal
level is enabled. See Log.trace(String, Object...)
for
details.public void bug(String message, Object... args)
Log
switch(state) { case PLAYING: . . . break; case PAUSED: . . . break; default: log.bug("Player state not handled."); }
Connection connection = connections.remove(listener); if (connection == null) { log.bug("Unbind called without bind."); return; }
public void bug(boolean expectedCondition, String message, Object... args)
Log
protected static String message(Object message)
message
- log message.private static String format(String message, Object... args)
This method takes care to pre-process arguments as follow:
All pre-processed arguments are replaced with string value and format specifier should be also string (%s).message
- formatted message,args
- variable number of formatting arguments.protected static String ellipsis(String message, int maxLength)
This method returns given message
argument if smaller that requested maximum length or a new created
string with trailing ellipsis if larger.
message
- message string, possible null,maxLength
- maximum allowed space.message
argument if smaller that requested maximum length or new created string with
trailing ellipsis.private static boolean isArrayLike(Object object)
object
- object to test if array like.object
argument is array like.private static Iterable<?> iterable(Object object)
object
argument is a collection just returns it
since collection is already iterbale. If is array, create an iterator able to traverse generic arrays.object
- collection or array.Copyright © 2018. All rights reserved.