Я хочу, чтобы в моем приложении было 4 файла журнала. Три файла журнала - это типичные журналы log4j Info, Warn и Error. Четвёртый файл журнала совершенно не связан и используется для регистрации некоторых данных.
Мой файл 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, и какое изменение кода мне нужно сделать, чтобы это произошло?