Package org.plumelib.bcelutil
Class SimpleLog
java.lang.Object
org.plumelib.bcelutil.SimpleLog
A logging class with the following features.
- Can be enabled and disabled (when disabled, all operations are no-ops),
- Can indent/exdent log output,
- Writes to a file or to standard output, and
- Can provide a stack trace.
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanIf false, do no output.private @Nullable StringThe file for logging output.private static final StringIndentation string for one level of indentation.private intThe current indentation level.private @Nullable StringCache for the current indentation string, or null if needs to be recomputed.Cache of indentation strings that have been computed so far.private @MonotonicNonNull PrintStreamWhere to write logging output. -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new SimpleLog object with logging to standard out enabled.SimpleLog(boolean enabled) Create a new SimpleLog object with logging to standard out.Create a new SimpleLog object with logging to a file enabled.Create a new SimpleLog object with logging to a file. -
Method Summary
Modifier and TypeMethodDescriptionbooleanenabled()Return whether logging is enabled.voidexdent()Decreases indentation by one level.private StringReturn the current indentation string.voidindent()Increases indentation by one level.voidLog a message.voidPrint a stack trace to the log.voidResets indentation to none.private voidSet the private fieldlogfile(if it is not set), based on the private fieldfilename.
-
Field Details
-
enabled
public boolean enabledIf false, do no output. -
logfile
Where to write logging output. Null if nothing has been output yet. -
filename
The file for logging output. If null, System.out is used. -
indentLevel
private int indentLevelThe current indentation level. -
INDENT_STR_ONE_LEVEL
Indentation string for one level of indentation.- See Also:
-
indentString
Cache for the current indentation string, or null if needs to be recomputed. Never access this directly; always callgetIndentString(). -
indentStrings
Cache of indentation strings that have been computed so far.
-
-
Constructor Details
-
SimpleLog
public SimpleLog()Create a new SimpleLog object with logging to standard out enabled. -
SimpleLog
public SimpleLog(boolean enabled) Create a new SimpleLog object with logging to standard out.- Parameters:
enabled- whether the logger starts out enabled
-
SimpleLog
Create a new SimpleLog object with logging to a file enabled.- Parameters:
filename- file name, or use "-" or null for System.out
-
SimpleLog
Create a new SimpleLog object with logging to a file.- Parameters:
filename- file name, or use "-" or null for System.outenabled- whether the logger starts out enabled
-
-
Method Details
-
enabled
public boolean enabled()Return whether logging is enabled.- Returns:
- whether logging is enabled
-
setLogfile
@EnsuresNonNull("logfile") private void setLogfile()Set the private fieldlogfile(if it is not set), based on the private fieldfilename.This creates the file if it does not exist. This should be called lazily, when output is performed. Otherwise, it would be annoying to create a zero-size logfile if no output is ever written.
-
log
Log a message. The message is prepended with the current indentation string. The indentation is only applied at the start of the message, not for every line break within the message.- Parameters:
format- format string for messageargs- values to be substituted into format
-
logStackTrace
public void logStackTrace()Print a stack trace to the log. -
getIndentString
Return the current indentation string.- Returns:
- the current indentation string
-
indent
public void indent()Increases indentation by one level. -
exdent
public void exdent()Decreases indentation by one level. -
resetIndent
public void resetIndent()Resets indentation to none. Has no effect if logging is disabled.
-