Once you retrieve a logger object from LogBox, you are ready to start sending messages. We already covered how to dynamically add/remove/list/check appenders from a logger, so let's look at the other methods we have available:
Every logger has access to the following public variables:
| Property | Description |
|---|---|
this.logLevels |
A reference to the logbox.system.logging.LogLevels class. |
| Method | Description |
|---|---|
boolean canLog(numeric level) |
Checks if this logger can log a certain type of severity. There is also a can{severity}() method for each severity level. |
boolean can{severity}() |
Checks if this logger can log a certain type of severity. |
void setCategory(category) |
Set the category name. |
Logger getRootLogger() |
Get the root logger. |
numeric getLevelMin() |
Get the minimum severity level. |
void setLevelMin(level) |
Set the minimum severity level. |
numeric getLevelMax() |
Get the maximum severity level. |
void setLevelMax(level) |
Set the maximum severity level. |
boolean getSerializeExtraInfo() |
Get whether complex objects passed as extraInfo are automatically serialized to a string representation. Defaults to true. |
void setSerializeExtraInfo(boolean) |
Set whether complex objects passed as extraInfo should be automatically serialized to a string representation. |
| Method | Description |
|---|---|
fatal(string message, [any extraInfo=""]) |
Log a fatal message. |
error(string message, [any extraInfo=""]) |
Log an error message. |
warn(string message, [any extraInfo=""]) |
Log a warning message. |
info(string message, [any extraInfo=""]) |
Log an information message. |
debug(string message, [any extraInfo=""]) |
Log a debug message. |
logMessage(string message, numeric severity, [any extraInfo=""]) |
Log any kind of message. |
As you can probably tell, all logging methods take in a message string an a second argument called extraInfo. This extraInfo argument can be anything from a string, a structure, a query or whatever. This way you can send in a complex structure that the appenders will serialize into message form or log into the appropriate channel. Thus, extraInfo can be very handy when you are building your own custom appenders.
// setting some messages
myLogger = logBox.getLogger( this ); // "com.model.dao"
myLogger.info( "I just created my first logger" );
try{
data = dao.getDBData();
}
catch( any e ){
myLogger.error(
"Something really died on my dbdata method: #e.message# #e.detail#",
e.tagContext
);
}I hope that by now you understand the basics of loggers and how easy it is to use them.