Monday, May 24, 2010

Database Logger

We have a lot of logging systems available on internet but they all log in file or on console. i encountered a situation where in we have to log into database. this logger is based on apache's log4j and been customized for database.

Create a class say DBAppender in package com.common which extends writerAppender, create a global variable dbjndiName and generate getter and setter of it. Now
add following function in it(Do not change signature of function)

public void append (LoggingEvent event){
if (dbjndiName != null) {
InitialContext context = new InitialContext();
DataSource ds = (DataSource) context.lookup(dbjndiName);
connection = ds.getConnection();
}
/*
put your logic to insert into database
*/
}


In log4j.xml you add an entry as :-

<appender name="DB" class="com.common.DBAppender">
<param name="Threshold" value="INFO"/>
<param name="dbjndiName" value="jdbc/intOMTWeb"/>
</appender>

No comments:

Post a Comment