package br.com.citframework.integracao; import java.io.IOException; import java.util.List; import org.apache.log4j.Logger; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.citframework.log.Log; import br.com.citframework.log.LogFactory; import br.com.citframework.util.Reflexao; public class RegistraLog implements Runnable { private static final Logger LOGGER = Logger.getLogger(RegistraLog.class); private final Object obj; private final String operacao; private final PersistenceUtil persistenceUtil; private final UsuarioDTO usuarioSessao; private final String tableName; public RegistraLog(final Object obj, final String operacao, final PersistenceUtil persistenceUtil, final UsuarioDTO usuarioSessao, final String tableName) { super(); this.obj = obj; this.operacao = operacao; this.persistenceUtil = persistenceUtil; this.usuarioSessao = usuarioSessao; this.tableName = tableName; } @Override public void run() { try { if (usuarioSessao != null) { final List<String> lista = Reflexao.getAllProperties(obj); final StringBuilder dados = new StringBuilder(); for (int i = 0; i < lista.size(); i++) { String campo = lista.get(i).toString(); final Object valor = Reflexao.getPropertyValue(obj, campo); if (valor != null) { campo = persistenceUtil.getCampoDB(campo); if (dados.length() > 0) { dados.append(";"); } dados.append(campo); dados.append(" = "); dados.append(valor); } } if (dados.length() > 0) { final StringBuilder message = new StringBuilder(); message.append(tableName); message.append(Log.SEPARADOR); message.append(operacao); message.append(Log.SEPARADOR); message.append(dados); message.append(Log.SEPARADOR); message.append(usuarioSessao.getIdUsuario()); message.append(Log.SEPARADOR); message.append(usuarioSessao.getNomeUsuario()); message.append(Log.SEPARADOR); message.append(usuarioSessao.getStatus()); LogFactory.getLog().registraLog(message.toString(), this.getClass(), Log.INFO); } } } catch (final Exception e) { if (e instanceof IOException) { LOGGER.debug("Erro ao recuperar arquivo para escrita de log: " + e.getMessage()); } else { LOGGER.debug(e.getMessage(), e); } } } }