Salvar Log em Arquivo utilizando log4j

1 resposta
A

Boa tarde, estou desenvolvendo um projeto teste e me deparei com o seguinte problema....

Eu tenho um projeto Web com o log4j, e quando crio uma mensagem de log, ela é exibida no console e eu gostaria que ela fosse salva em um arquivo.

meu log4j.xml está da seguinte forma:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<!-- Appenders -->
	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p: %c - %m%n" />
		</layout>
	</appender>
	
	<!-- Application Loggers -->
	<logger name="com.velocity.helloworld">
		<level value="info" />
	</logger>
	
	<!-- 3rdparty Loggers -->
	<logger name="org.springframework.core">
		<level value="info" />
	</logger>	
	
	<logger name="org.springframework.beans">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.context">
		<level value="info" />
	</logger>

	<logger name="org.springframework.web">
		<level value="info" />
	</logger>

	<!-- Root Logger -->
	<root>
		<priority value="info" />
		<appender-ref ref="console" />
	</root>
	
</log4j:configuration>

Gostaria de saber como faço para salvar esses logs em um arquivo.

Obrigado desde já.

Atenciosamente,

1 Resposta

A

Olá,
Você está usando o appender de CONSOLE (org.apache.log4j.ConsoleAppender). Por isso os logs são impressos no console.

<appender name="console" class="org.apache.log4j.ConsoleAppender">  
        <param name="Target" value="System.out" />  
        <layout class="org.apache.log4j.PatternLayout">  
            <param name="ConversionPattern" value="%-5p: %c - %m%n" />  
        </layout>  
    </appender>

O que você precisa fazer é adicionar um appender para FILE. Você pode usar vários appenders.
Exemplo:

<appender name="FILE" class="org.apache.log4j.FileAppender">    
    <param name="File" value="application.log" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p: %c - %m%n" />
    </layout>       
</appender>

E adicionar o appender no ROOT LOGGER:

<root>  
        <priority value="info" />  
        <appender-ref ref="console" /> 
        <appender-ref ref="FILE" />
    </root>

Existem outras variações como por exemplo: org.apache.log4j.DailyRollingFileAppender.
(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Appender.html)

Criado 3 de dezembro de 2012
Ultima resposta 3 de dez. de 2012
Respostas 1
Participantes 2