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:
[code]
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;
}[/code]
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??