Trying out custom loggers
nickarls Aug 11, 2011 3:22 AMI'm trying out the fresh custom logging in upstream master. I created a logger like
public class DBLogger extends Handler
{
@Override
public void publish(LogRecord record)
{
System.out.println("logging");
}
@Override
public void flush()
{
System.out.println("flushing");
}
@Override
public void close() throws SecurityException
{
System.out.println("closing");
}
}
and packaged it in a module like
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="fi.affecto.dblogger">
<resources>
<resource-root path="DBLogger.jar"/>
</resources>
<dependencies>
<module name="org.jboss.logging"/>
</dependencies>
</module>
and modified standalone.xml logging subsystem with a
<custom-logger name="DB" autoflush="true" module="fi.affecto.dblogger" class="fi.affecto.osti.fwkint.jbosslogging.DBLogger">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<properties>
<property name="jndiName" value="java:jboss/datasources/OSTiDataSource"/>
</properties>
</custom-logger>
but I get a parsing error in standalone.xml saying
10:05:14,430 ERROR [stderr] Message: Unexpected element '{urn:jboss:domain:logging:1.1}custom-logger'
which is strange, since
jboss-as-logging_1_1.xsd has
<xs:element name="custom-logger" type="customHandlerType" />
and the logging subsystem uses
<subsystem xmlns="urn:jboss:domain:logging:1.1">
Theories?
And another question, how are the parameters passed in (I'd like to set up a datasource when the logger starts)? I tried to look at the custom logger service startup but didn't see anything obvious and looking at the other logmanager handlers they operated mostly on hardcoded attributes and not on properties.