Я настроил приложения log4j в своем приложении для отправки писем в случае каких-либо исключений.
Код в Config.groovy выглядит следующим образом:
log4j = {
appenders {
String currentUrl = grails.serverURL
String currentEnv = 'Production'
if (Environment.isDevelopmentMode()) {
currentEnv = 'Development'
} else if (currentUrl.indexOf('test') > -1) {
currentEnv = 'Testing'
}
console name: 'stdout', layout: pattern(conversionPattern: '[%r] %c{2} %m%n')
// if real password is needed, please contact IT department
def patternLayout = new PatternLayout()
patternLayout.setConversionPattern("[%r] %c{2} %m%n")
def mailAppender = new SMTPAppender()
mailAppender.setSMTPUsername('[email protected]')
mailAppender.setSMTPPassword('password')
mailAppender.setFrom("[email protected]")
mailAppender.setTo("[email protected]")
mailAppender.setSubject("A log4j error has been generated in the [${currentEnv}] environment.")
mailAppender.setSMTPHost("smtp.elasticemail.com")
mailAppender.setSMTPPort(2525)
mailAppender.setBufferSize(4096)
mailAppender.setLayout(patternLayout)
appender name: 'mail', mailAppender
root {
error 'stdout', 'mail'
additivity = true
}
}
}
Я хочу включить в тему текущего пользователя входа в систему, из-за которого возникает ошибка экрана. Я использую плагин безопасности Spring, а версия Grails 1.3.7.
У меня есть следующий код:
def user
grails.plugins.springsecurity.onInteractiveAuthenticationSuccessEvent = { e, appCtx ->
user = org.abc.com.Person.get(appCtx.springSecurityService.currentUser.id)
}
за пределами log4j и используется экземпляр пользователя в теме, но возвращает значение null.
Есть ли у них какой-либо другой способ получить текущего пользователя в теме.
Любой способ сделать это? Пожалуйста, предложите
Также есть ли способ отправлять почту асинхронно?
user
изменяется во время выполнения. Итак, если вы хотите отправить имя пользователя по электронной почте, вам следует сделать это во время выполнения (какой-нибудь контроллер или сервис и т. д.) - person wwarlock   schedule 27.08.2014log.debug "session id: ${sessionId}, user: ${currentUser}"
. И этот журнал будет отправлен по электронной почте, как вы настроили вConfig.groovy
- person wwarlock   schedule 27.08.2014