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??