Olá
Abaixo um exemplo para configurar um appender do log4j programaticamente, ou seja, sem utilizar o log4j.properties (que é a forma mais comum de configurar).
[sourcecode language=’java’]package br.com.furutani;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
public class Main {
private Logger log = Logger.getLogger(Main.class);
public Main() {
// Caminho onde o arquivo será gravado
String path = “D:\\java\\logs\\Main.txt”;
// Formatação do log
String pattern = “[%d{ISO8601}] %p – %m%n”;
// Criando um FileAppender
FileAppender fileAppender = new FileAppender();
fileAppender.setAppend(true);
fileAppender.setName(“FileAppenderLog”);
fileAppender.setFile(path);
// Criando um layout para o arquivo de log
PatternLayout patternLayout = new PatternLayout();
patternLayout.setConversionPattern(pattern);
fileAppender.setLayout(patternLayout);
// Efetiva as alterações
fileAppender.activateOptions();
// Adiciona o file appender
Logger.getRootLogger().addAppender(fileAppender);
}
public void fazerLog() {
log.info(“Um log”);
}
public void fazerMaisUmLog() {
log.error(“Outro log”);
}
public static void main(String[] args) {
Main main = new Main();
main.fazerLog();
main.fazerMaisUmLog();
}
}
[/sourcecode]
O conteúdo do arquivo será parecido com o listado abaixo:
[2009-10-08 09:03:22,066] INFO – Um log
[2009-10-08 09:03:22,082] ERROR – Outro log
Nesse exemplo usei o log4j-1.2.9.jar.
Até mais,
Roberto
Olá Furutani,
No meu projeto está configurado o log4j.properties.
Existe alguma alteração que devo fazer para que seja utilizada a minha classe de configuração ao invés do arquivo?
Grato
Sei que é bem velho o tópico, mas me ajudou muito. Obrigado!