2 Logs para um appender

10 respostas
Jedi_FeniX

Tem como logar classes de pacotes diferentes em um mesmo appender?
Exemplo:
A classe A e a classe B escrevem no arquivo de log a_b.log.

10 Respostas

dondiego

Utilizando o log4j?

cê pode também utilizar um aspect para logar utilizando diferentes instâncias do seu logger, configurado uma para cada arquivo.

já fiz isso… tipo um log de debug (que tinha menos importância na fila) e outro de auditória (com importância máxima).

mas é meio trampa.

:smiley:

Foxlol

Da sim!

Só colocar no properties/xml.

dondiego

mas aí utiliza dois appenders.

pelo que entendi ele quer somente um appender.

o que é meio estranho também. não sei se o commons logging faz isso, mas acho que o log4j não dá não, porque senão seria apenas colocar dois appenders e colocar cada pattern para um:

<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">

		<param name="File" value="/var/xxx/logs/xxx.log" />

		<param name="DatePattern" value="'.'yyyy-MM-dd" />

		<param name="Append" value="true" />

		<param name="Encoding" value="UTF-8" />

		<layout class="org.apache.log4j.PatternLayout">

			<param name="ConversionPattern"

				value="%-5p %d{dd/MM/yyyy HH:mm:ss.SSS} (%c{10}):%n      %m%n%n" />

		</layout>

	</appender>
        <!-- outro appender desse: FILE2 -->
        
        <category name="org.apache">

                <appender>FILE</appender>
		<priority value="WARN" />

	</category>

        <category name="org.apache">

                <appender>FILE2</appender>
		<priority value="WARN" />

	</category>

se não for assim, é parecido!

:D

Foxlol

Perae, vc quer dois appenders diferentes para um mesmo pacote…ou um appender para dois pacotes diferentes?

http://wiki.apache.org/logging-log4j/Log4jXmlFormat

dondiego

acho que dá os dois, né?

e no xml que fiz é appender-ref e não appender só.

Foxlol

Então, esse exemplo que vc passou não funciona?

dondiego

funciona demais.

a diferença é que eu utilizei aspect depois… não me lembro como ficou de performance, etc…

Foxlol

Então tah blz hauioeae :lol:

Jedi_FeniX

Eu gostaria de poder logar duas classes diferente em um mesmo arquivo, sendo que estas classes estão em pacotes diferentes.

dondiego

então é um appender de geração de log em arquivo só.

isso é possível.

aí é só cada category dos seus dois appenders que conterão as chamadas do log4j para gerar log apontarem para o appender que gera ou arquivo (como no meu último post). ou senão:

<root>

	<priority value="INFO" />

	<!-- <appender-ref ref="STDOUT" /> -->

	<appender-ref ref="FILE" />

</root>

aí tudo que será gerado pelo log4j sairá pelo appender FILE uma vez que essa tag configura a saída raiz.

é isso?

Criado 13 de dezembro de 2009
Ultima resposta 14 de dez. de 2009
Respostas 10
Participantes 3