Using WebLogic Logging Services for Application Logging
The following sections provide reference information for loggable objects:
By default, all log message catalogs create Logger
classes with methods that are used to log the messages to the WebLogic server log. The Logger
classes can optionally include methods that return a loggable object instead of logging the message. Loggable objects are useful when you want to generate the log message but actually log it at a later time. They are also useful if you want to use the message text for other purposes, such as throwing an exception.
To create a Logger
class that provides methods to return loggable objects, you must set the loggables
attribute in the message catalog.
For example, consider the test.xml catalog shown in Listing B-1.
Listing B-1 test.xml Message Catalog
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE message_catalog PUBLIC "weblogic-message-catalog-dtd" "http://www.bea.com/servers/wls90/dtd/msgcat.dtd">
<message_catalog
subsystem="Examples"
version="1.0"
baseid="500000"
endid="500001"
loggables="true"
>
<logmessage
messageid="500000"
severity="error"
method="logIOError(Throwable t)"
>
<messagebody>
IO failure detected.
</messagebody>
<messagedetail>
</messagedetail>
<cause>
</cause>
<action>
</action>
</logmessage>
</message_catalog>
When you run this catalog through the weblogic.i18ngen
utility, a Logger
class is created for this catalog with the following two methods:
The loggable object can be used as shown in Listing B-2.
Listing B-2 Example of Use of Loggable Object
package test;
import weblogic.logging.Loggable;
import weblogic.i18n.testLogger;
...
try {
// some IO
} catch (IOException ioe) {
Loggable l = testLogger.logIOErrorLoggable(ioe);
l.log(); // log the error
throw new Exception(l.getMessage());//throw new exception with
same text as logged
}