Как получить выход Java Logger в файл по умолчанию
Netbeans задумчиво разбрызгивает Logger.getLogger(this.getClass(). getName()). log (Уровень. [...]
в блоках catch. Теперь я хотел бы указать все их на файл (и на консоль).
Каждый учебник по журналированию и только я рассказываю, как получить конкретный регистратор для вывода в файл, но я предполагаю, что есть лучший способ, чем исправление каждого автоматически созданного оператора регистрации? Установка обработчика для какого-то корневого регистратора или что-то еще?
Ответы
Ответ 1
Я просто добавляю следующее при запуске
Handler handler = new FileHandler("test.log", LOG_SIZE, LOG_ROTATION_COUNT);
Logger.getLogger("").addHandler(handler);
Вы можете указать свои собственные значения для LOG_SIZE
и LOG_ROTATION_COUNT
Вам может потребоваться настроить уровень ведения журнала, чтобы он соответствовал.
Ответ 2
Вы должны определить, где записывается журнал в файле конфигурации регистратора.
Например, если вы используете log4j, файл log4j.xml(или log4j.properties) будет содержать такую информацию.
Например, вот простой файл log4j.xml, который регистрируется непосредственно в файле (my-app.log) и в консоли:
<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="rolling" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="my-app.log" />
<param name="DatePattern" value=".yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [IP=%X{ipAddress}] [user=%X{user}] %m%n" />
</layout>
</appender>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [user=%X{user}] %m%n" />
</layout>
</appender>
<root>
<priority value="info" />
<appender-ref ref="console" />
<appender-ref ref="rolling" />
</root>
</log4j:configuration>