jboss-logging.xml and JDBCAppender in jboss-6.0.0.Final
panixgr Jun 29, 2011 9:44 AMHello,
i am in the process of migration from jboss-4.2.3 to jboss-6.0.0 and i have been struggling with this problem. In the old installation i was using org.apache.log4j.jdbcplus.JDBCAppender from http://www.dankomannhaupt.de/projects/index.html which performed (in the sense of working) better than the standard JDBCAppender from apache's log4j's JDBCAppender. All this was done in the old format jboss-log4j.xml .
Now i see things have moved over to jboss-logging.xml which seems to have a different format. I have successfully managed to do some basic configuration in this file (like set up my basic file-logging services), but have failed miserably in any attempt to set up either the enhanced org.apache.log4j.jdbcplus.JDBCAppender or the standard (but discouraged) org.apache.log4j.jdbc.JDBCAppender.
I have setup all relevant jars in JBOSS_BOOT_CLASSPATH in order to avoid classpath problems.
I tried with org.apache.log4j.jdbcplus.JDBCAppender :
<log4j-appender name="DYNAJDBC" class="org.apache.log4j.jdbcplus.JDBCAppender"> <error-manager> <only-once/> </error-manager> <properties> <property name="dbclass">org.postgresql.Driver</property> <property name="url">jdbc:postgresql://localhost/dynacom</property> <property name="username">postgres</property> <property name="password">pazzword</property> <property name="sql">insert into logging(logtime,category,username,action) values('@TIMESTAMP@','@CAT@',substring('@MSG@' from 1 for position(' ' in '@MSG@')-1),'@MSG@')</property> <property name="quoteReplace">true</property> </properties> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n"/> </formatter> </log4j-appender>
In the above case i get no error messages at all, but the thing just do not work. I touch jboss-logging.xml, i get
16:35:42,670 INFO [service] Restored bootstrap log handlers
16:35:42,675 INFO [service] Removing bootstrap log handlers
but nothing from the db side, no connection, no error, and unfortunately no logging
Then I tried with the traditional appender org.apache.log4j.jdbc.JDBCAppender :
<log4j-appender name="DYNAJDBC" class="org.apache.log4j.jdbc.JDBCAppender"> <error-manager> <only-once/> </error-manager> <properties> <property name="driver">org.postgresql.Driver</property> <property name="URL">jdbc:postgresql://localhost/dynacom</property> <property name="user">postgres</property> <property name="password">pazzword</property> <property name="sql">insert into logging values(now(),'some cat','some user','some action')</property> </properties> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n"/> </formatter> </log4j-appender>
In this case, when the server is started i get no errors, no exceptions, but i get no database activity as well. When i re-touch jboss-logging.xml , then i get
16:42:53,726 ERROR [STDERR] java.lang.NullPointerException
16:42:53,727 ERROR [STDERR] at java.lang.Class.forName0(Native Method)
16:42:53,727 ERROR [STDERR] at java.lang.Class.forName(Class.java:186)
16:42:53,727 ERROR [STDERR] at org.apache.log4j.jdbc.JDBCAppender.setDriver(JDBCAppender.java:351)
16:42:53,727 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
................
Is there anyone who have successfully used JDBC logging with jboss 6?