Я пытаюсь настроить приложение Grails (2.2.0), чтобы иметь файл журнала для определенного пакета, а затем использовать вывод консоли для всего остального. Я также хочу убедиться, что ничто, что идет в файл журнала, также не идет на консоль (держите их полностью отдельно). Чтение через the docs Я все еще немного смущен, как это сделать. Может ли кто-нибудь помочь с примером, который выполняет это (используя DSL log4j)?Записи Grails: Несколько регистраторов и добавок
ответ
Я получил эту работу с помощью this question. Вот что я оказался в моей Config.groovy:
log4j = {
appenders {
console name: 'stdout', layout: pattern(conversionPattern: '%d{yyyy-MM-dd/HH:mm:ss.SSS} [%t] %x %-5p %c{2} - %m%n')
rollingFile name: 'extraAppender',
conversionPattern: '%d{yyyy-MM-dd/HH:mm:ss.SSS} [%t] %x %-5p %c{2} - %m%n',
maxFileSize: 1024,
file: '/tmp/logs/extra.log'
}
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'
trace additivity: false, extraAppender: 'extraLogger'
}
Тогда в классе, который предполагается использовать extraLogger, я просто иду логгер как это:
def extraLogger = LoggerFactory.getLogger('extraLogger')
Это позволяет мне войти еще вещи на консоль и некоторые другие специфические вещи в другой файл журнала, без каких-либо конкретных событий, заканчивающихся в журнале консоли.
+1: это, пожалуй, самый чистый подход. При тщательной манипуляции с аддитивностью и т. Д. Вы можете получить все для пакета 'foo.bar' в дополнительный журнал, но тогда вам также нужно будет повторно назначить каждый подпакет' foo.bar.baz' обратно на 'stdout' Appender. Отдельный подход к регистрации гораздо проще и менее хрупким. –
Я бы не пошел таким путем, так как это ограничило бы способ загрузки разных журналов для пакетов/классов и заставил бы меня иметь два объекта журнала, если я хочу получить дополнительную информацию, но если вы хороши идти с ним все в порядке :) – herom
В моем случае, наличие 2 регистраторов - это именно то, что мне нужно. Я уверен, что есть много случаев, когда это не подходит тем, что нужно другим. – user605331
- 1. Log4j: Несколько регистраторов, уровней и добавок
- 2. добавляющих регистраторов для Grails классов
- 3. boost logger, несколько лог-файлов и регистраторов
- 4. log4j.properties file - несколько регистраторов в одном классе
- 5. logback: два приложения, несколько регистраторов, разные уровни
- 6. несколько корневых Регистраторов с Logback условных
- 7. Loglog несколько регистраторов с различной конфигурацией
- 8. Интерфейс против отдельных регистраторов
- 9. Создание нескольких регистраторов
- 10. 2D массив пустых добавок?
- 11. Log4j2 с использованием нескольких приложений и регистраторов
- 12. Вычисление сети добавок и удалений в PowerPivot
- 13. Лучшая версия JavaScript добавок и stripslashes?
- 14. Динамически создавать регистраторы журналов и добавок
- 15. Sentry logger filter показать фактических регистраторов
- 16. Получение регистраторов Scrapy
- 17. Конфигурирование дочерних регистраторов
- 18. Создание пользовательских регистраторов
- 19. Молчание регистраторов и печать на экран - Python
- 20. Flex, удаление регистраторов событий и установщик привязки
- 21. Пользовательские NLog LogLevels или несколько регистраторов в классе?
- 22. Несколько регистраторов с конкретным приложением для каждого регистратора в журнале
- 23. Log4Net: программно указать несколько регистраторов (с несколькими файловыми приложениями)
- 24. opengl: смешанное смешивание нелинейных добавок
- 25. Python URL без добавок mod_rewrite
- 26. Ошибка в программе сверления добавок
- 27. Grails услуги :: несколько проектов
- 28. Несколько ассоциаций в grails
- 29. Записи пакетного обновления в Grails
- 30. Несколько баз данных Grails
Вы задумались о том, чтобы углубиться в 'log4j' и прочитать документы там (http://logging.apache.org/log4j/1.2/)? – herom
... и вот несколько примеров из сети, которые помогут вам получить больше знаний о конфигурации log4j в проектах Grails. См. Http://snipplr.com/view/63391/grails-log4j-for-different-environments--an-example/ или http://grails-dev.blogspot.co.at/2012/09/setting-up -log4j-configuration-in.html – herom