logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From p...@mindspring.com
Subject RE: conditional logging of exception
Date Fri, 21 Mar 2008 15:05:46 GMT
Thank you for your response.

(A) Sometimes we run third party libraries in a container that are very noisy.  Given this
situation, we have two choices:
(1) log the exception and fill up the log file,
(2) decrease the logging level and miss the exception entirely.

It seems like it would be nice to have a third state: log a one liner summary of the error.

(B) Sometimes exceptions are not exceptional.  Their generation depends on the mood, at the
time, of whatever developer coded the library you are using.


The class org.apache.log4j.Logger seems like it is coded with these distinctions in mind,
since there are two APIs for any given log level:

logger.debug(Object, Throwable)
logger.error(Object, Throwable)

and so on.

Part of the rationale for log4j is that you can adjust the log level (and thus the log output)
without changing code.  In the end, I suppose what I am driving at is, for each level, there
should be a third API, that controls whether logger.error(O) or logger.error(O, T) is used,
based on the current logger Level.

Level.FATAL: log nothing
Level.ERROR: log the Object
Level.DEBUG: log the Object and the stack trace

Since this API doesn't exist, I'm trying to work around it.


With regard to the suggestion of using the FQCN API, there seems to be a problem using it
with the Appender layout options "%C:%-4L".  When I use BasicConfigurator.configure(), I get:

.0 [main] ERROR mycompany.test.LoggerTest  - java.lang.Exception
0 [main] ERROR mycompany.test.LoggerTest  - java.lang.Exception
	at mycompany.test.LoggerTest.logSomeStuff(LoggerTest.java:36)
	at mycompany.test.LoggerTest.testBasicLogging(LoggerTest.java:17)

which is what I want.  If I configure my logger with the appender layout:

%d [%t] %-5p %C:%-4L - %m%n

... then I get:

2008-03-21 11:00:42,338 [main] ERROR ?:?    - java.lang.Exception
2008-03-21 11:00:42,354 [main] ERROR ?:?    - java.lang.Exception
	at mycompany.test.LoggerTest.logSomeStuff(LoggerTest.java:36)
	at mycompany.test.LoggerTest.testSiteLogging(LoggerTest.java:27)

So FQCN affects the first line of the stack trace, which is good, but it messes up the class
and line number in the pattern, which is bad.

-----Original Message-----
>From: Bender Heri <HBender@Ergonomics.ch>
>Sent: Mar 20, 2008 5:27 PM
>To: Log4J Users List <log4j-user@logging.apache.org>, pico@mindspring.com
>Subject: RE: conditional logging of exception

To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org

View raw message