私はトピックログを初めて使用し、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 レベルを 2 つの別々のファイルに記録したいと考えています。この構成でテストしたところ、うまくいきました!
しかし、私の質問は、このようなxmlファイルの代わりにJavaクラスを使用して同じ構成を作成できるかということです. 私の考えは、RESTサービスをアプリケーションに送信してログ設定を変更することにより、外部からログ構成を制御したいということです。たとえば、ログファイルの名前を変更したり、ログパターンを変更したりします...
それでは、純粋なJavaクラスでどのように行うことができますか?
よろしくお願いします!