Я хочу, чтобы в моем приложении было 4 файла журнала. Три из файлов журнала - это типичные журналы log4j Info, Warn и Error. 4-й файл журнала полностью не связан и используется для регистрации некоторых данных.несколько несвязанных файлов журнала с регистрацией log4j и commons
Мой log4j.properties файл выглядит следующим образом:
log4j.threshold=ALL
log4j.rootLogger=ALL, InfoAppender, WarnAppender, ErrorAppender
log4j.DATA_LOGGER=INFO, DataAppender
log4j.additivity.DATA_LOGGER = false
log4j.appender.DataAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DataAppender.File=/app_logs/data.log
log4j.appender.InfoAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.InfoAppender.File=/app_logs/info.log
log4j.appender.WarnAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.WarnAppender.File=/app_logs/warn.log
log4j.appender.ErrorAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ErrorAppender.File=/app_logs/error.log
И мой Java-код выглядит следующим образом:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static final Log LOG = LogFactory.getLog(SomeClassInMyApp.class);
private static final Log DATA_LOG = LogFactory.getLog("DATA_LOGGER");
private static void foo() {
LOG.info("Hello");
DATA_LOG.info("Some data");
}
Когда я запускаю этот текст «Hello» правильно написано в info.log. Но файл data.log никогда не создается и не записывается.
Почему строка DATA_LOG.info («Некоторые данные») не записывается в файл data.log и какое изменение кода необходимо сделать для того, чтобы это произошло?
Очевидно, проблема заключается в log4j, а не в регистрации сообщений. Поведение точно так же, когда я попробовал ваше предложение напрямую вызвать log4j вместо использования commons-logging. –
@Mike W обновил код. Не знаете, чего не хватает в коде. – Nishant
Благодаря вашему рабочему примеру, я вижу проблему. В строке 3 моего log4j.properties у меня есть «log4j.DATA_LOGGER», но должен был иметь «log4j.logger.DATA_LOGGER». –