logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Mark.Pri...@ngc.com>
Subject RE: Newbie question on setting different levels
Date Wed, 12 Nov 2003 02:57:49 GMT
Scott,
 
Is it possible that the Jakarta libraries are reconfiguring log4j on you after your configuration
has run?  I ran into this with the open source Joram JMS implemnetation.  As soon as I started
using the Joram classes, some static Joram code would reconfigure log4j and blow away my whole
configuration.  Can you try running configure after calling some library methods?
 
Good luck,
Mark
 
-----Original Message----- 
From: Paul Smith [mailto:paul.smith@lawlex.com.au] 
Sent: Tue 11/11/2003 9:23 PM 
To: Log4J Users List 
Cc: 
Subject: Re: Newbie question on setting different levels



	I have to admit that everything you have indicated here looks fine.  At
	what point does the DOMConfigurator.configure("log4j.xml") call get
	made? I am assuming here that it is called _before_ the call to
	getEffectiveLevel(). By default all Loggers will be INFO until a
	configuration sets to otherwise.
	
	cheers,
	
	Paul Smith
	
	
	On Wed, 2003-11-12 at 11:13, Scott Smith wrote:
	> I've been reading through documentation on log4j and thought I understood
	> how everything works.  But there is something I'm missing. 
	>
	> Since several of the Jakarta libraries seem to log to the root logger, I
	> wanted to set up the root logger with the appenders.  Then I would set the
	> root logger to pass ERROR or above and my own logger to pass DEBUG or above
	> (so I'd see everything from my app, but only errors from the libraries).
	> Based on that, I generated the following configuration file.
	>
	> ----------------------------------------------------------------------------
	> --
	> <?xml version="1.0" encoding="UTF-8"?>
	> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
	>
	> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
	> debug="true">
	>       <appender name="CONSOLE" class = "org.apache.log4j.ConsoleAppender">
	>               <layout class="org.apache.log4j.PatternLayout">
	>                       <param name="ConversionPattern" value="%d [%t] %-5p
	> %c %m%n"/>
	>               </layout>
	>       </appender>
	>      
	>       <appender name="FILE" class =
	> "org.apache.log4j.DailyRollingFileAppender">
	>               <param name="file" value="./Logs/log"/>
	>               <param name="ImmediateFlush" value="true"/>
	>               <param name="Append" value="true"/>
	>               <param name="DatePattern" value="'.' yyyy-MM-dd"/>
	>               <layout class="org.apache.log4j.PatternLayout">
	>                       <param name="ConversionPattern" value="%d %-5p
	> %m%n"/>
	>               </layout>
	>       </appender>
	>      
	>       <logger name="com.mainstreamdata.messager">
	>               <level value="debug"/>
	>       </logger>
	>      
	>       <root>
	>               <priority value="error" />
	>               <appender-ref ref="CONSOLE"/>
	>               <appender-ref ref="FILE"/>
	>       </root>
	> </log4j:configuration>
	> ----------------------------------------------------------------------------
	> -------------
	>
	> When I execute:
	>       DOMConfigurator.configure("log4j.xml");
	> Everything seems to be fine and I see the following from log4j:
	>
	> ----------------------------------------------------------------------------
	> log4j: Threshold ="null".
	> log4j: Retreiving an instance of org.apache.log4j.Logger.
	> log4j: Setting [com.mainstreamdata.messager] additivity to [true].
	> log4j: Level value for com.mainstreamdata.messager is  [debug].
	> log4j: com.mainstreamdata.messager level set to DEBUG
	> log4j: Level value for root is  [error].
	> log4j: root level set to ERROR
	> log4j: Class name: [org.apache.log4j.ConsoleAppender]
	> log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
	> log4j: Setting property [conversionPattern] to [%d [%t] %-5p %c %m%n].
	> log4j: Adding appender named [CONSOLE] to category [root].
	> log4j: Class name: [org.apache.log4j.DailyRollingFileAppender]
	> log4j: Setting property [file] to [./Logs/log].
	> log4j: Setting property [immediateFlush] to [true].
	> log4j: Setting property [append] to [true].
	> log4j: Setting property [datePattern] to ['.' yyyy-MM-dd].
	> log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
	> log4j: Setting property [conversionPattern] to [%d %-5p %m%n].
	> log4j: setFile called: ./Logs/log, true
	> log4j: setFile ended
	> log4j: Appender [FILE] to be rolled at midnight.
	> log4j: Adding appender named [FILE] to category [root].
	> -------------------------------------------------------------------
	>
	> All of which looks OK to me.  Here's the problem.  I don't see any of my
	> DEBUG logs go to either appender.  In fact, if I execute the following line
	> of code:
	>
	>       System.out.println("Effective Level for " + lggr.getName() + " is "
	> + lggr.getEffectiveLevel());
	>
	> It says:
	>
	>       Effective Level for com.mainstreamdata.messager is INFO
	>
	> I don't want INFO; I want DEBUG.  If I hadn't set my logger in the config
	> file to DEBUG, I would have expected it to default to ERROR (the root logger
	> level).  I also tried enumerating through the logger repository (off of the
	> root logger) to see if I had something misspelled and I really had two
	> loggers enabled, but it only shows the one (non-root) logger.  Oh, and if I
	> set the level programmatically to DEBUG, it works as I expect.  Also, I
	> printed the effective level of the root logger and it showed up as ERROR
	> (which is what I said in the configuration file and so was also expected).
	> What am I missing????
	>              
	> Thanks for any help.
	>
	> Scott Smith
	>
	> ---------------------------------------------------------------------
	> To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org
	> For additional commands, e-mail: log4j-user-help@jakarta.apache.org
	
	
	---------------------------------------------------------------------
	To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org
	For additional commands, e-mail: log4j-user-help@jakarta.apache.org
	

Mime
View raw message