Ответ 1
Вы добавили бы его как обычный Java-класс:
Logger log = Logger.getLogger(getClass()) // log4j
или
Log log = LogFactory.getLog(getClass()) // commons logging
У меня есть класс в src/ groovy в моем проекте grails.
Как создать поле журнала, в которое вводится правильный журнал для этого класса?
Существует ли ведомость общин или просто log4j в графе?
Вы добавили бы его как обычный Java-класс:
Logger log = Logger.getLogger(getClass()) // log4j
или
Log log = LogFactory.getLog(getClass()) // commons logging
Более Groovy способ сделать то же самое:
private static log = LogFactory.getLog(this)
Это использует тот факт, что this
в статическом контексте относится к объекту Class
, поэтому приведенная выше строка может быть скопирована с одного класса на другой без изменений.
Используйте аннотацию @Log4j, представленную в Groovy 1.8. Это добавит свойство log
import groovy.util.logging.Log4j
@Log4j
class MyClass {
def doIt() {
log.info 'hello'
}
}
Хорошим преимуществом использования аннотации является то, что регистратор автоматически преобразует вызовы, такие как:
log.info 'hello'
в
if (log.isInfoEnabled() {
log.info 'hello'
}
Использование стандартного Log4j нового Logger (getClass()) работало, но зарегистрировало java.lang.Class для меня (используя Grails 1.2.1). Эта проблема ушла с плагином Sublog и @WithLog. См. http://www.grails.org/plugin/sublog. Этот плагин также не позволяет Trace стать Debug и Fatal Error...!