logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Curt Arnold <carn...@apache.org>
Subject Re: sending output from separate java packages to separate files
Date Mon, 16 Feb 2009 21:42:33 GMT

On Feb 16, 2009, at 3:54 PM, Pat Farrell wrote:

> I know this can be done, but I can't figure out how to configure
> log4j.properties to send log messages from libraries/packages to
> separate streams. I get all of my output in one log file.
>
> I've read all of "The complete log4j manual" by Ceki Gülcü, and just
> don't get it.
> I want all msgs from com.baz.* to go one place,
> all msgs from com.foo.* to go to another
> all from net.sourceforge.stripes to go to a third.
>
> the log4j file looks like:
>
>   1. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>   2. log4j.appender.stdout.Target=System.out
>   3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>   4. log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p
> %c{1}:%L - %m%n
>   5.
>   6. log4j.appender.baz=org.apache.log4j.FileAppender
>   7. log4j.appender.baz.File=/tmp/baz.log
>   8.
>   9. log4j.appender.stripesfile=org.apache.log4j.FileAppender
>  10. log4j.appender.stripesfile.File=/tmp/stripes.log
>  11.
>  12. log4j.appender.foo=org.apache.log4j.FileAppender
>  13. log4j.appender.foo.File=/tmp/foo.log
>  14. log4j.rootLogger=INFO, stdout, base
>  15. log4j.logger.net.sourceforge.stripes=DEBUG, stdout, stripesfile
>  16. log4j.logger.com.foo=DEBUG, stdout, fnfbookfile
>  17. log4j.logger.com.baz=DEBUG, stdout, fnfbookfile
>
>
> When I test it, it all goes to the same place
>
> Test code looks like:
>
>
>   1.         Logger aLog =
> Logger.getLogger("net.sourceforge.stripes.action.Resolution");
>   2.         aLog.error("this is an error");
>   5.         Logger cLog = Logger.getLogger("com.foo.busobj.Address");
>   6.         cLog.error("this is an error address");
>   7.         Logger dLog =
> Logger.getLogger("com.baz.database.DBConnectionPool");
>   8.         dLog.error("this is an error DBConnPool");
>
>
> Thanks
>
> --  
> Pat Farrell
> http://www.pfarrell.com/
>
>


You define appenders named "stdout", "baz" and "foo", then you attach  
appenders named "stdout", "base" and "stripesfile" to various  
loggers.  Since "base" and "stripesfile" are not defined, the only  
place for the messages to go is to "stdout".

Since you are not setting additivity to false, all messages sent to  
"com.foo.*" will be sent to stdout twice, once for its attachment at  
"com.foo" and once for its attachment to the rootLogger.



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


Mime
View raw message