Jake,

Thanks for your reply. I tried out NDC and is working fine.

But I could not use MDC. It gave the following error:

java.lang.NoSuchMethodError: org.apache.log4j.spi.LoggingEvent.getMDC
(Ljava/lang/String;)Ljava/lang/Object;

I am using log4j-1.3alpha0.jar and a jdbcappender which extends log4j (
org.apache.log4j.jdbcplus)

My code snippet is:

*Logger loggerObj = LoggerFactory.getLogger("UsageLogger");*

*NDC.push(sessionUser);*

*MDC.put("LogUrl",url);*

*loggerObj.info("MDC test");*

*NDC.pop();*

*MDC.remove("LogUrl");*

My log4j.xml entry is:

*<param **name="sql" value="INSERT INTO LOGSTAB (id, prio, cat, thread, msg,
throwable, ndc, mdc, the_timestamp) VALUES (FELIXLOGS_SEQ.NEXTVAL,@INC@,
'@PRIO@', '@CAT@', '@THREAD@', '@MSG@', '@THROWABLE@', '@NDC@',
'@MDC:LogUrl@', CURRENT_TIMESTAMP)"** />*

Why is it happening? I understand that you can store only one value in the
database using NDC. Please correct me if I am wrong.

Thanks & Regards

Merin


On 8/21/06, Jacob Kjome <[EMAIL PROTECTED]> wrote:


If you want to use MDC or NDC, you will have to register the values using
your
classes.  However, once you have that, you can redefine the layout of your
appender in the config file without changing your classes.  This article
provides both an example of a JDBCAppender configuration and talks about
MDC
and NDC.  They are discussed separately, but you can extrapolate on how
you
would add the MDC/NDC values in your layout...

http://www.onjava.com/pub/a/onjava/2002/08/07/log4j.html?page=3


Jake

Reply via email to