У меня есть следующее для моей конфигурации log4j DSL в Grails 1.2:
log4j = {
appenders {
console name: 'stdout', layout: pattern(conversionPattern: conversionPattern)
environments {
production {
// ... some code to determine file path ...
rollingFile name: 'file', file: "${logDirectory}/${appName}.log", layout: pattern(conversionPattern: conversionPattern)
rollingFile name: 'StackTrace', file: "${logDirectory}/${appName}-stacktrace.log"
}
}
environments {
development { root { warn 'stdout' } }
test { root { warn 'stdout' } }
production { root { error 'file' } }
}
// ... package-specific logging configurations ...
}
Когда я развертываюсь в Tomcat как война, мои журналы записываются как в catalina.out, так и в мой «файловый» регистратор, определенный для производства.
Я пробовал:
- добавление
additivity = false
к определению root {}
для production {}
, которое не работает (и я бы не ожидал, что это, по-видимому, устанавливает аддитивность для самого корневого регистратора?).
- определяет консольный апплет 'stdout' внутри блока
development {}
и test {}
в закрытии appenders {}
, но это тоже не работает.
Возможно, это проблема моей конфигурации Tomcat, а не моего log4j DSL? Наиболее близким к тому, что я нашел кого-то с похожей проблемой, является эта ветка списка рассылки , для которой не было (простого) решения.
Как я могу предотвратить запись журналов в catalina.out в производственном процессе?