This appendix includes the following sections:
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 Example B-1.
Example 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:
logIOError (throwable) - logs the message
logIOErrorLoggable (throwable) - returns a loggable object
The loggable object can be used as shown in Example B-2.
Example 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
}