Ceki, Thank you for you prompt response. There is not any problem composing them except that the LoggingEvent object deserialized post-JMSAppender has instance variables category = null and fqnOfCategoryClass = null. This appears to cause an Exception from line ~828 of JDBCAppender.java which creates a new LoggingEvent(...) with the first two constructor arguments being null. When I traced this, the LoggingEvent constructor seemed to throw an exception. I did not trace into this constructor but now I am curious so I will do that.
- Joe -----Original Message----- From: Ceki Gulcu <[EMAIL PROTECTED]> To: Log4J Users List <[EMAIL PROTECTED]> Date: Tuesday, November 20, 2001 9:19 AM Subject: Re: JDBCAppender from JMSAppender > >Hmm, all this sounds very suspicious to me. There >should be no problems with composing JMSAppender and >JDBCAppender. All the work is done during >serialization of logging event. Have you looked at >JMSSink? Regards, Ceki > >--- Joe Sackett <[EMAIL PROTECTED]> wrote: >> I have log4j logging inside of Orion 1.5.2 under JDK >> 1.3.1_01. >> I have the JDBCAppender working for logging events >> initiated >> inside of the web and ejb containers. However, I >> also have >> external applications running outside of the app >> server that >> I need to have logged via the same JDBCAppender. I >> use a >> JMSAppender to log from those external apps. This >> is where >> things got a little sticky. Since the JMSAppender >> must serialize >> the LoggingEvent object, its reference to the >> Category is lost >> for obvious reasons. However, after this Logging >> event arrives >> into the JMS Topic, the JDBCAppender does not like >> the >> null instance variables LoggingEvent.category and >> LoggingEvent.fqnOfCategoryClass. I have attached a >> workaround for this problem (lines 828 - 837) in the >> file >> JDBCAppender.java. >> A related issue I experienced with the interaction >> between >> these two appenders is that the deserialized event >> is >> (of course) unable to lookup its location >> information context >> (e.g. file, line, etc.) but CAN use the cached >> LocationInfo object >> that was deserialized along with the LoggingEvent. >> A problem >> occurs when the JDBCAppender internally creates a >> new event >> from the state of the deserialized event. This new >> event does >> not have the cached LocationInfo object and can not >> look it up. >> I attached another workaround (lines 457 - 475) in >> the file >> JDBCLogger.java. >> I now have it working for my purposes. Hopefully my >> attached >> changes will further illuminate the issues. I am >> sure there are >> solutions that consider more than my specific >> workarounds. >> Thank you for these useful appenders. Please let me >> know if I >> need to further explain these issues and >> workarounds. >> >> - Joe >> >> > >> ATTACHMENT part 2 application/octet-stream >name=JDBCAppender.java > > >> ATTACHMENT part 3 application/octet-stream >name=JDBCLogger.java >> -- >> To unsubscribe, e-mail: >> <mailto:[EMAIL PROTECTED]> >> For additional commands, e-mail: ><mailto:[EMAIL PROTECTED]> > > >__________________________________________________ >Do You Yahoo!? >Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month. >http://geocities.yahoo.com/ps/info1 > >-- >To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>