Создание различных файлов журнала с использованием log4j - PullRequest
0 голосов
/ 24 марта 2011

Я пытаюсь записывать логи в разные файлы.Я хочу иметь возможность записывать в разные файлы разными методами.Скажем, если в методе A есть исключение, оно записывается в файл A ... если в методе B пишется исключение в файл B. Я читаю справку в Google, но все они предлагают уровни отладки, трассировки и т. Д.Мои сообщения - это все сообщения об ошибках, только методы разные.Я использую файл свойств для log4j.Вот как это выглядит:

log4j.rootLogger=ERROR, ROOT
log4j.appender.ROOT=org.apache.log4j.RollingFileAppender
log4j.appender.ROOT.File=(**my_path**)\EmailIntegration.log
log4j.appender.ROOT.MaxFileSize=1000KB
log4j.appender.ROOT.MaxBackupIndex=5
log4j.appender.ROOT.layout=org.apache.log4j.PatternLayout 
log4j.appender.ROOT.layout.ConversionPattern=[%d] %t %c %-5p - %m%n
log4j.logger.com.webage.ejbs=INFO

Ответы [ 2 ]

3 голосов
/ 24 марта 2011
  1. Определите свой log4j.rootLogger.
  2. Настройте rootLogger для appender.
  3. Определите, к какому корневому логгеру должен принадлежать журнал классов.

Пример (мой корневой логгер stdout, infoout, debugout, errorout).

#---This is the configuration file for Log4J---
log4j.threshold=ALL
log4j.rootLogger=ALL, stdout, infoout, debugout, errorout

Затем я определил каждый регистратор (например, infoout)

#--Log settings for infoout
log4j.appender.infoout=org.apache.log4j.RollingFileAppender
log4j.appender.infoout.file=C:/Logs/Music4Point0.info.log
log4j.appender.infoout.MaxFileSize=10240KB
log4j.appender.infoout.MaxBackupIndex=10
log4j.appender.infoout.layout=org.apache.log4j.PatternLayout
log4j.appender.infoout.layout.ConversionPattern=%d{dd-MMM-yyy HH:mm:ss,SSS} [%t] %-5p %c - %m%n
log4j.appender.infoout.Threshold=INFO

Теперь я сказал, что все org.hibernate.* классы должны регистрироваться до порога DEBUG и infoout logger.

log4j.logger.org.hibernate=DEBUG, infoout
log4j.additivity.org.hibernate=false

Вот так вы настраиваете log4J для настройки вашей собственной регистрации.

1 голос
/ 24 марта 2011

Лучший уровень контроля в log4j - на уровне класса. В любом случае, у вас есть два варианта:

Первый вариант, самый простой, заключается в определении специальных регистраторов для каждого метода:

log4j.logger.LoggerForMethodA=ERRROR, APPENDERFORMETHODA
log4j.logger.LoggerForMethodB=ERRROR, APPENDERFORMETHODB

А в вашем классе используйте соответствующий логгер для ваших методов.

Второй вариант, более мощный, - это переключиться на формат конфигурации xml, где вы можете определить фильтры для каждого аппендера. Я думаю, что это ваш лучший вариант. Посмотрите объяснение о формате конфигурации XML и как использовать фильтры в log4j . Таким образом, вы определяете один appender для каждого файла и используете фильтр, чтобы гарантировать, что исключение передается в нужный файл. Также взгляните на javadocs для Filter , Logging Event и LocationInfo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...