Re: Log4J Ignores log4j.LogLevel
Kevin Sandal wrote:
I have an external file called "log4j.properties" that is being utilized. I
know this since the log file is being created. However, the logging level
(log4j.LogLevel) is being ignored. Please help me find where I am going
wrong.
My code, with all the fluff removed,
not to mention many pieces needed to let it compile,
is:
private static Logger _myLogger = null;
The constructor tells us that your class name (inconveniently omitted from
your post) is Logger, which is also a log4j class name. Of which type is
_myLogger?
private static Log _apacheLog = null;
public Logger()
{
}
public static synchronized Logger getInstance( final Class
runtimeClass )
{
if( null == _myLogger )
{
_myLogger = new Logger();
}
Based on the code you provide, this is assigning an instance of the custom
"Logger" class to the static variable.
if( null == _apacheLog )
{
PropertyConfigurator.configure( "./config/log4j.properites" );
How would this work? You have only instances of your custom Logger class, not
of the log4j class, right?
_apacheLog = LogFactory.getLog( runtimeClass );
}
return _myLogger;
From this we see that _myLogger will change every time the factory method is
invoked. Why do you store the value in the static member and return it, both?
}
The properties file is:
log4j.LogLevel=INFO
log4j.rootCategory=, A1, A2
I use something like
log4j.rootCategory = WARN, A1
# Set properties for appender A1 (Rolling File Appender)
....
# Set properties for appender A2 (Console Appender)
# Logging specific to Jakarta Commons Configuration (3rd party open
source)
log4j.logger.org.apache=ERROR
Wouldn't it be simpler just to create a log4j logger, org.apache.log4j.Logger,
using, say
Logger logger = Logger.getLogger( someClass );
<http://logging.apache.org/log4j/docs/api/org/apache/log4j/Logger.html#getLogger(java.lang.Class)>
?
Try providing a complete example that we can compile and maybe we could give
better responses, plus I am not knowledge about the commons logging framework.
I use log4j a lot, though, and have absolutely no trouble setting the log
level with the log4j.properties file.
--
Lew