The most likely thing is a problem with the registration of the custom appender. There is a lot to be desired in the static initialization of 0.9.7, so you might see if the problem goes away with the current CVS.

The likely problem is either a failure to register your custom appender in the classes registry, or the registration occurring after a default configuration has been processed. Classes are registered in the expansion of the IMPLEMENT_LOG4CXX_OBJECT macro in log4cxx/helpers/object.h. You should have one of these in your custom appender, if not your class is invisible to log4cxx. If you do, then it could be a timing issue. You might manually expand the macro and set a break point on the construction of your class instance and also the default configuration code. If the default configuration code is being triggered (at least in the current HEAD), that should because some other static initializer is trying to log. Check the stack trace to see if you can figure out what is triggering the default initialization.


On Jan 12, 2005, at 4:53 PM, Matt Funk wrote:

Hello,

I've created a custom appender, CustomConsoleAppender, and built it into the
log4cxx library. It works fine if I add my appender to the root logger through
code. However, when I add my appender to the .properties file, the appender
isn't created.


Another appender in the properties file works fine so I know the props file is
being read.


My properties file looks like this:
---
log4j.rootCategory=DEBUG, customConsoleAppender

log4j.appender.customConsoleAppender=org.apache.log4j.CustomConsoleAppe nder
log4j.appender.customConsoleAppender.Append=false
log4j.appender.customConsoleAppender.layout=org.apache.log4j.PatternLay out
log4j.appender.customConsoleAppender.layout.ConversionPattern=[%t] %-5p %F(%L): %m%n
---


Any hints on what to do would be appreciated. Thanks!

Matt Funk




Reply via email to