Boa tarde, eu preciso que minha aplicação gere arquivos de logs de três formas: arquivo de log contendo TUDO o que ocorre no sistema, arquivo de log contendo apenas instruções SQL e um ultimo contendo apenas erros.
Eu criei meu log4j.properties assim:
log4j.rootCategory=WARN,stdout,fileOut,errorOut,queryOut
#### O primeiro appender escreve no console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
#### O segundo appender escreve em um arquivo nomeado console.log
log4j.appender.fileOut =org.apache.log4j.RollingFileAppender
log4j.appender.fileOut.File=console.log
log4j.appender.fileOut.layout=org.apache.log4j.PatternLayout
log4j.appender.fileOut.layout.ConversionPattern=%d [%t] %5p %F:%L - %m%n
log4j.appender.fileOut.Threshold=ALL
#### O segundo appender escreve em um arquivo nomeado erros.log
log4j.appender.errorOut =org.apache.log4j.RollingFileAppender
log4j.appender.errorOut.File=erros.log
log4j.appender.errorOut.layout=org.apache.log4j.PatternLayout
log4j.appender.errorOut.layout.ConversionPattern=%d [%t] %5p %F:%L - %m%n
log4j.appender.errorOut.Threshold=WARN
#### O terceiro appender escreve em um arquivo nomeado queries.log
log4j.appender.queryOut =org.apache.log4j.RollingFileAppender
log4j.appender.queryOut.File=queries.log
log4j.appender.queryOut.layout=org.apache.log4j.PatternLayout
log4j.appender.queryOut.layout.ConversionPattern=%d [%t] %5p %F:%L - %m%n
log4j.appender.queryOut.Threshold=DEBUG
Como o Log4j utiliza níveis e o DEBUG é mais baixo que o WARN, qdo ocorre um erro na aplicação é gerado uma linha de log no arquivo erros.log e no queries.log. Porém eu não queria que gerasse neste último. O que vocês me sugerem fazer para resolver isto? Existe como eu definir um atributo que somente os DEBUG vão par aum arquivo?