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).

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();
}
}

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

Share


2 comentários

  1. #
    Danilo
    dezembro 2nd, 2009 at 10:33

    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

    Responda a esse comentário
  2. #
    chrystfofer
    outubro 17th, 2016 at 16:13

    Sei que é bem velho o tópico, mas me ajudou muito. Obrigado!

    Responda a esse comentário

Deixe um comentário