Как настроить параметры для выхода из системы, используя класс Java вместо XML-файла
Я новичок в теме Журнал и попытался использовать logback для регистрации необходимой информации в моем приложении. В интернете я обнаружил, что могу настроить журнал, используя xml-файл следующим образом:
<springProfile name="production, staging">
<appender name="debugLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d %-5level %logger{36} - %msg %n</pattern>
</encoder>
<file>logs/service-debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/service-debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="errorLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d %-5level %logger{36} - %msg %n</pattern>
</encoder>
<file>logs/service-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/service-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<root level="DEBUG">
<appender-ref ref="debugLogAppender" />
<appender-ref ref="errorLogAppender" />
</root>
</springProfile>
Я хотел бы записать уровень DEBUG и уровень ERROR в двух отдельных файлах. Я проверил с этой конфигурацией, и она работала!
Но мой вопрос заключается в том, что я могу сделать ту же конфигурацию, используя класс Java вместо файла XML, как это. Потому что моя идея заключается в том, что я хочу контролировать конфигурацию журнала извне, также отправляя службу REST своему приложению, чтобы изменить настройки журнала, например: изменить имя файла журнала или изменить шаблон журнала...
Как я могу сделать это с чистым классом Java тогда?
Большое спасибо в продвинутом!
1 ответ
Я рекомендую прочитать о logback, если я правильно помню, он позволяет изменить конфигурацию регистрации либо путем изменения XML-файла (автоматическая перезагрузка), либо через веб-ловушку.