Log4J - Erro sobrescreve erro anterior

1 resposta
T

To com um probleminha na utilização do Log4J...seguinte:
Fiz o seguinte método e coloquei dentro de utils onde é usado por todo sistema:

public boolean writeLog(Exception ex) {

    Logger logger = Logger.getLogger(ApplicationTools.class);
    WriterAppender appender = null;
    FileOutputStream fos;
    Calendar gc = new GregorianCalendar();
    Date today = new Date();
    //Seta a data de hj para atribuir ao nome padrão do arquivo..
    gc.setTime(today);
    String strFileName = Constantes.SCHEMA + "_" + gc.get(Calendar.YEAR);
    strFileName += "_" + gc.get(Calendar.MONTH + 1) + "_" + gc.get(Calendar.DAY_OF_MONTH) + ".log";

    String strPatternLog = "Milisegundos desde o ínicio do programa: %r %n";
    strPatternLog += "Classe: %C %n";
    strPatternLog += "Data: %d{dd/MM/yyyy} %n";
    strPatternLog += "Hora: %d{HH:mm:ss} %n";
    strPatternLog += "Local: %l %n";
    strPatternLog += "Mensagem: %m %n";
    strPatternLog += "----------------------------------------%n";


    PatternLayout layout = new PatternLayout(strPatternLog);

    //Atribui ao stream de saída..
    try{
      fos = new FileOutputStream(strFileName);
      //..
      appender = new WriterAppender(layout, fos);
      //Seta o nível do Logger pela hierarquia de erros..
      logger.addAppender(appender);

      logger.setLevel(Level.INFO);
     

    }catch(Exception e){
      //logando uma exception caso oocrra.
      logger.error("Erro: " + e.getMessage());
      return false;
    }

    logger.error(ex.getMessage(), ex.getCause());

    return true;
  }

Ele ta escrevendo corretamento no arquivo..o problema é que qnd gero outro erro ele sobrescreve o erro anterior de uma maneira estranha.
Ex: Se por acaso houvesse UM erro lá, ele sobrescreve esse erro e escreve mais uma linha, ou seja ele faz o "append", mas os erros ficam sempre igual ao último erro ocorrido..
Já aconteceu isso com alguém.??Alguém sabe a solução??

1 Resposta

G

Você precisa ter essa confguração no código ? você não pode utilizar um properties ou XML para realizar a configuração ?

Você resolve esse problema com a classe: RollingFileAppender

Criado 10 de maio de 2006
Ultima resposta 10 de mai. de 2006
Respostas 1
Participantes 2