I'm using 2 appenders :
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.MapRDB=com.A.B.maprdblogger.Appender
stdout writes in console. MapRDB in MapRDB. It's a custom appender.
My application is on this package : com.A.B
For my log, I need :
- error from all application in stdout
- warn from com.A package in MapRDB
- info from com.A.B package in stdout
So I write :
log4j.rootLogger=ERROR, stdout
log4j.logger.com.A=WARN, MapRDB
log4j.logger.com.A.B=INFO, stdout
log4j.additivity.com.A=false
With this conf, my console log are good but nothing is written in MapRDB.
Without additivity false, I have double log in console and info log in MapRDB. I tried a lot of combinaison, but nothing doed what I need...
I think I haven't understand how to use log4j, any body has the solution ?