Archive for outubro de 2011
“Estudante cria sistema que permite fazer pedidos na mesa da praça de alimentação”
Posted by Endrigo Antonini in Celular, Comércio, Inovação, NFC, Notícias, Tecnologia on 25/10/2011
O estudante australiano Stephen Davis criou um sistema que pode facilitar a vida de quem frequenta praças de alimentação. A Brand Table (Mesa das Marcas) usa a tecnologia NFC (Near Field Communication) para disponibilizar menus e realizar pedidos e pagamentos … Continue lendo
Introdução a Groovy e Grails na Semana da Computação UDESC
Posted by Arian Pasquali in Sem categoria on 12/10/2011
Configurando Log4j para email de exceptions no Grails
Posted by Arian Pasquali in Sem categoria on 12/10/2011
O log4j tem um appender que envia emails chamado SMTPAppender. Nesse post eu vou mostrar como configurar esse appender no Grails.
Dessa forma sempre que for lançada uma exception não tratada você recebe um email com o erro e o stacktrace.
Encontrei essa solução aqui.
Pra fazer isso siga os passos.
1. Adicionar dependencia de mail.jar e activation.jar em BuildConfig.groovy
dependencies {
compile("javax.mail:mail:1.4.4")
compile("javax.activation:activation:1.1.1")
}
2. Alterar Config.groovy
import org.apache.log4j.Level
import org.apache.log4j.net.SMTPAppender
System.setProperty 'mail.smtp.port', '465'
System.setProperty 'mail.smtp.starttls.enable', 'true'
mail.error.server = 'smtp.gmail.com'
mail.error.port = 465
mail.error.username = 'seu@email.com'
mail.error.password = 'sua-senha-aqui'
mail.error.to = 'to@email.com'
mail.error.from = 'from@email.com'
mail.error.subject = '[Application Error]'
mail.error.starttls = true
mail.error.auth = true
mail.error.socketFactory.port = 465
mail.error.socketFactory.class = "javax.net.ssl.SSLSocketFactory"
mail.error.socketFactory.fallback = false
mail.error.debug = false
// log4j configuration
log4j = {
System.setProperty 'mail.smtp.port', mail.error.port.toString()
System.setProperty 'mail.smtp.starttls.enable', mail.error.starttls.toString()
appenders {
appender new SMTPAppender( name: 'smtp', to: mail.error.to, from: mail.error.from, subject: mail.error.subject, threshold: Level.ERROR, SMTPHost: mail.error.server, SMTPUsername: mail.error.username, SMTPDebug: mail.error.debug.toString(), SMTPPassword: mail.error.password, layout: pattern(conversionPattern: '%d{[ dd.MM.yyyy HH:mm:ss.SSS]} [%t] %n%-5p %n%c %n%C %n %x %n %m%n'))
}
error 'org.codehaus.groovy.grails.web.servlet', // controllers
'org.codehaus.groovy.grails.web.pages', // GSP
'org.codehaus.groovy.grails.web.sitemesh', // layouts
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
'org.codehaus.groovy.grails.web.mapping', // URL mapping
'org.codehaus.groovy.grails.commons', // core / classloading
'org.codehaus.groovy.grails.plugins', // plugins
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'org.springframework',
'org.hibernate',
'net.sf.ehcache.hibernate'
warn 'org.mortbay.log'
root {
error 'stdout', 'smtp'
additivity = true
}
}
that's pretty much it
