package br.com.citframework.log;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilTratamentoArquivos;
@SuppressWarnings({"rawtypes", "unchecked"})
public class CitLog implements Log {
private String pathLog;
private String fileLog;
private String extLog;
/**
* @author breno.guimaraes
*/
public CitLog() {
this.inicializarParametros();
}
private void inicializarParametros() {
pathLog = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.PATH_LOG, "C:/Program Files/jboss/server/default/deploy/CitCorpore.war/tempFiles");
fileLog = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.FILE_LOG, "/log");
extLog = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.EXT_LOG, "txt");
}
@Override
public void registraLog(final String mensagem, final Class classe, final String tipoMensagem) throws Exception {
final Date dataAtual = UtilDatas.getDataAtual();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
final String nomeArquivo = pathLog + fileLog + "_" + sdf.format(dataAtual) + "." + extLog;
synchronized (nomeArquivo) {
final List lista = new ArrayList();
sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
lista.add("[" + tipoMensagem + "] - " + sdf.format(dataAtual) + " - " + classe.getName() + " - " + mensagem);
UtilTratamentoArquivos.geraFileTXT(nomeArquivo, lista, true);
}
}
@Override
public void registraLog(final Exception e, final Class classe, final String tipoMensagem) throws Exception {
final Date dataAtual = UtilDatas.getDataAtual();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
final String nomeArquivo = pathLog + fileLog + "_" + sdf.format(dataAtual) + "." + extLog;
final List lista = new ArrayList();
sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
lista.add("[" + tipoMensagem + "] - " + sdf.format(dataAtual) + " - " + classe.getName() + " - Exception:");
synchronized (nomeArquivo) {
try (final FileOutputStream fos = new FileOutputStream(nomeArquivo, true)) {
final PrintStream out = new PrintStream(fos);
UtilTratamentoArquivos.geraFileTXT(nomeArquivo, lista, out);
e.printStackTrace(out);
}
}
}
}