0

私はトピックログを初めて使用し、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クラスでどのように行うことができますか?

よろしくお願いします!

4

1 に答える 1