настройка файла log4j.properties | разделение бревен - PullRequest
1 голос
/ 19 сентября 2011

Я использую hibernate в своем веб-объекте. У меня есть log4j.propertes под WEB-INF / classes. Я хочу отдельные файлы журналов для журналов гибернации и журнала приложений.мой журнал приложений.

В моем log4j.properties

# Define the root logger with appender file
logDir = ${catalina.home}/logs/akp.log
log4j.rootLogger = DEBUG, FILE

#Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File= ${catalina.home}/logs/${fileName}.log

у меня есть следующее, и в моем приложении я получаю экземпляр моего регистратора как

private Logger logger = Logger.getLogger(MyClass.class.getName());

Нов папке журналов я могу видеть только один файл с именем исключений: .log (не xyz.log). Также под этим именем у меня есть все смешанные журналы. Я хочу отдельный файл журнала для каждого моего класса applation, так как я использую

 logger = Logger.getLogger(MyClass.class.getName());

Ответы [ 3 ]

1 голос
/ 19 января 2012

Ваш файл свойств log4j объявляет переменные, но не использует их. У вас также есть пара других вопросов, и вы задали три отдельных вопроса.

Здесь вы определяете переменную 'logDir':

logDir = $ {catalina.home} /logs/akp.log (вы путаете имя файла и каталог здесь)

Здесь вы используете переменную 'fileName' и вообще не ссылаетесь на logDir

log4j.appender.FILE.File = $ {catalina.home} / logs / $ {fileName} .log

Вам нужно изменить немного, чтобы достичь того, что вы описали (есть также множество других вариантов и последствий), но для начала - объявите каталог и имя файла отдельно:

logDir = $ {catalina.home} / logs fileName = myAppLog.log

указать приложение для корневой категории (с использованием лучшего соглашения об именах, чем «ФАЙЛ»). Лично я бы никогда не использовал DEBUG в корне, если бы это не было очень маленькое приложение:

log4j.rootLogger = DEBUG, myAppAppender

Создайте appender, используя каталог журнала и имя файла. Используйте append для добавления, чтобы решить, следует ли добавить в существующий файл или перезаписать:

log4j.appender.myAppAppender = org.apache.log4j.FileAppender log4j.appender.myAppAppender.File = $ {logDir} / $ {fileName} log4j.appender.myAppAppender.Append = верно

Затем вы можете указать дополнительные приложения (и файлы) для разных категорий приложений. Параметрируйте имя файла по мере необходимости / удобно, используйте additivity = false, чтобы сохранить запись только в этом конкретном журнале:

log4j.category.com.company.package.specialpackagename = INFO, specialAppender log4j.appender.specialAppender = org.apache.log4j.FileAppender log4j.appender.specialAppender.File = $ {LogDir} /specialPackageLog.log log4j.appender.specialAppender.Append = верно log4j.appender.specialAppender.Additivity = ложь

Это должно помочь вам начать (если вы этого еще не поняли:)

ура

Rob

0 голосов
/ 09 мая 2013

У меня была похожая проблема, когда я использовал log4j.properties , и цель состояла в том, чтобы поместить журналы из одной иерархии пакетов в один файл и журналы из другой иерархии пакетов во втором файле.

Хотя на этот вопрос принят ответ, все же я просто пишу его, чтобы помочь людям, которые не могут его настроить.

Нам необходимо настроить приложения для каждого устройства регистрации и определить два средства ведения журнала, как показано ниже:

# Direct log messages to a log file
log4j.appender.metering_app=org.apache.log4j.RollingFileAppender
log4j.appender.metering_app.File=C:/logs/Metering_INFO.log 
log4j.appender.metering_app.MaxFileSize=10MB
log4j.appender.metering_app.MaxBackupIndex=50
log4j.appender.metering_app.layout=org.apache.log4j.PatternLayout
log4j.appender.metering_app.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %5p %c{2}:%L - %m%n
log4j.appender.metering_app.filter.ID=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.metering_app.filter.ID.LevelMax=FATAL
log4j.appender.metering_app.filter.ID.LevelMin=INFO
log4j.appender.metering_app.filter.ID.AcceptOnMatch=true


# Direct log messages to a log file
log4j.appender.notification_app=org.apache.log4j.RollingFileAppender
log4j.appender.notification_app.File=C:/logs/Notification_INFO.log 
log4j.appender.notification_app.MaxFileSize=10MB
log4j.appender.notification_app.MaxBackupIndex=50
log4j.appender.notification_app.layout=org.apache.log4j.PatternLayout
log4j.appender.notification_app.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %5p %c{2}:%L - %m%n
log4j.appender.notification_app.filter.ID=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.notification_app.filter.ID.LevelMax=FATAL
log4j.appender.notification_app.filter.ID.LevelMin=INFO
log4j.appender.notification_app.filter.ID.AcceptOnMatch=true

#root logger
log4j.logger.com.test.metering=INFO, metering_app
log4j.additivity.com.test.metering=false
log4j.logger.com.test.notification=INFO, notification_app
log4j.additivity.com.test.notification=false
0 голосов
/ 19 сентября 2011

Заменили ли вы «filename» в $ {fileName}?Создает ли он файлы журнала в папке catalina.home, если не проверяет, объявлен ли ваш catalina.home?

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