Thread thread = new Thread() {
@Override
public void run() {
try {
Email email = new Email();
// Cria a mensagem
email.setSubject(Convert.toString(
"[ATENCAO] Ocorreu um erro no sistema: ",
Configurator.getProperty("system.name")
));
String machine;
try {
NetworkInterface ni = NetworkInterface.getByName("eth0");
machine = ni.toString().replaceAll("\\n", " ");
} catch (Exception e) {
machine = "DESCONHECIDA";
}
email.setMessage(Convert.toString(
"<h2>ATENCAO: Ocorreu um erro no sistema!</h2>",
"* Maquina: ", machine, "<br>",
"* Produto: ",
Configurator.getProperty("system.name"), "<br>",
"* Versao: ",
Configurator.getProperty("system.version"), "<br>",
"* Mensagem: ", message, "<br>",
"* Codigo de erro: ", code, "<br>",
"* Erro: ", error.getClass().getSimpleName(),
" -- ", error.getMessage(),
(
error.getCause() != null ? Convert.toString(
" -- | -- Caused by: ",
error.getCause().getClass().getSimpleName(),
" -- ", error.getCause().getMessage()) : ""
),
"<br>",
"* Stacktrace: em anexo"
));
// Configura os envolvidos a receber a notificao.
String to = Configurator.getProperty("system.email");
email.setTo(Arrays.asList(to.split("\\s*[,;]\\s*")));
// Cria o arquivo com o stacktrace do erro e anexa ao email
File fileError = File.createTempFile(Convert.toString(
"errocode_", code, "---"), ".txt");
PrintWriter print = new PrintWriter(fileError);
error.printStackTrace(print);
print.close();
email.addAttachment(fileError);
// Envia o email para os destinatarios configurados.
EmailSender.send(email);
} catch (Exception e) {