У меня есть приложение log4j, определенное как:
log4j.logger.com.example = DEBUG, filelog
log4j.appender.filelog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.filelog.File=c:/app.log
log4j.appender.filelog.layout=org.apache.log4j.PatternLayout
log4j.appender.filelog.layout.ConversionPattern=%d | %m%n
log4j.appender.filelog.DatePattern=.dd-MM-yyyy
В моем классе я получаю регистратор вроде:
Log logger = LogFactory.getLog(getClass());
Это работает правильно.Я хочу иметь регистратор, который всегда регистрирует определенные сообщения (не ошибки, а такие вещи, как длительность транзакций).Если я напишу их в DEBUG или INFO, я не увижу их, если уровень журнала будет изменен.Я думаю, что могу сделать это, используя другой appender, который записывает в тот же файл.
Возможно ли, чтобы два appenders записывали в один и тот же файл?Как получить экземпляр регистратора, в котором я хочу использовать обычный отладчик и транзакционный приложение в одном классе?Эти сообщения не будут все в одном и том же пакете, поэтому я не могу настроить определенный пакет на постоянную регистрацию.Должен ли я сделать так, чтобы эти appenders записывали в разные файлы, или я могу получить их оба в коде и получить что-то вроде:
Log alwaysLogger = LogFactory.getLog(ALWAYS);
alwaysLogger.debug("This message will always be written regardless of the level set on the filelog appender");
Update Я мог бы записать в два разных файла журналаесли необходимо, но как мне получить экземпляр логгера в моем классе?Я не хочу настраивать один пакет / класс так, чтобы он всегда использовал один аппендер над другим, так как классы должны будут регистрировать информацию / сообщения об ошибках и транзакционные сообщения «всегда» во время обычного запуска.Есть ли способ выполнить то, что мне нужно, даже если он записывает в два разных файла журнала?