Use AsyncAppender and attach DBAppender to it.
Something like this for the asynchronous part:
<async-handler name="ASYNC"> <level name="DEBUG"/> <queue-length value="1024"/> <overflow-action value="BLOCK"/> <subhandlers> <handler name="CONSOLE"/> <handler name="FILE"/> <handler name="DB"/> </subhandlers> </async-handler>
And then define DB as DBAppender (or JDBCAppender depending on what you installed).
<log4j-appender name="DB" class="org.apache.log4j.jdbc.JDBCAppender"> <error-manager> <only-once/> </error-manager> <level name="INFO"/> <properties> <property name="URL">jdbc:postgresql://localhost:5432/data</property> <property name="driver">org.postgresql.Driver</property> <property name="user">admin</property> <property name="password">admin</property> </properties> <formatter> <pattern-formatter pattern="insert into Log values (current_timestamp,'%c', '%t','%p','%m')" /> </formatter> </log4j-appender>
source share