Archive for outubro de 2011

“Estudante cria sistema que permite fazer pedidos na mesa da praça de alimentação”

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


Nenhum comentário.

Introdução a Groovy e Grails na Semana da Computação UDESC

No dia 26/set pude apresentar um pouco de Groovy e Grails na Semana da Computação da UDESC. 

Segue slides da palestra.

Permalink | Leave a comment  »

Nenhum comentário.

Configurando Log4j para email de exceptions no Grails

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

Permalink | Leave a comment  »

Nenhum comentário.