Log4J mais de 1 appender?

2 respostas
tiagops

Opa

Tem como eu usar mais de 1 appender ao mesmo tempo?
Ou seja imprimir no console e salvar em arquivo ao mesmo tempo?

Valeu!

2 Respostas

Z

Aqui na empresa, usamos assim: Criamos dois appenders (um para o console e outro para stdout, e um terceiro da classe AsyncAppender (ASYNCAPP), para juntar os dois.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
	<!-- Log de Console -->
	<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %d{HH:mm:ss} %m [%t](%F:%L)\n" />
		</layout>
	</appender>

	<!-- Log de arquivo -->
	<appender name="ARQLOG" class="org.apache.log4j.RollingFileAppender">
		<param name="MaxFileSize" value="5120KB" />
		<param name="File" value="c:\\meuLog.log"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %d{HH:mm:ss} %m [%t](%F:%L)\n" />
		</layout>
	</appender>
	
	<appender name="ASYNCAPP" class="org.apache.log4j.AsyncAppender"> 
		<appender-ref ref="STDOUT"/> 
		<appender-ref ref="ARQLOG"/> 		
	</appender>
	
	<category name="org.apache.commons.dbcp">
		<priority value="debug" />
	</category>
	
	<root>
		<priority value="debug" />
		<appender-ref ref="ASYNCAPP" /> 
	</root>

</log4j:configuration>
tiagops

Valeu Zampieri!

Usando a sua dica achei esse link na web : http://hotwork.sourceforge.net/hotwork/manual/log4j/log4j-user-guide.html

Eu precisava da configuracao pro arquivo log4j.properties e aqui tem

#### Usando 2 appenders, 1 para logar no console, outro para um arquivo
log4j.rootCategory=DEBUG, stdout, fileOut

Imprime somente mensagens com ‘priority’ WARN ou mais alto para o logger

#lembrando a ordem: DEBUG - INFO - WARN - ERROR - FATAL
log4j.category.SEU.LOGGER.NAME=WARN

Explicita a herança do nivel de prioridade

#log4j.category.your.category.name=INHERITED

O primeiro appender escreve no console

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

Pattern que mostra o nome do arquivo e numero da linha.

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

O segundo appender escreve em um arquivo

log4j.appender.fileOut =org.apache.log4j.RollingFileAppender
log4j.appender.fileOut.File=example.log

Controla o tamanho maximo do arquivo

log4j.appender.fileOut.MaxFileSize=100KB

Faz backup dos arquivos de log (apenas 1)

log4j.appender.fileOut.MaxBackupIndex=1

log4j.appender.fileOut.layout=org.apache.log4j.PatternLayout
log4j.appender.fileOut.layout.ConversionPattern=%p %t %c - %m%n

:wink:

Criado 3 de julho de 2006
Ultima resposta 3 de jul. de 2006
Respostas 2
Participantes 2