15

現在、ログバック構成ファイルがあります。つまりlogback.xmlsrc/main/resources. ログレベルを設定したいのですが、戦争以外で制御したいです。

私が考えることができる1つの解決策は、それをプロパティファイルに外部化し、サーバーの起動時にロードして、プレースホルダーを置き換えることです。それを行うより良い方法はありますか?logback.xml戦争ファイルの外に保管することはできませんか?

    <configuration>
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${catalina.base}/logs/logFile.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- keep 7 days' worth of history -->
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>
    
    <root level="DEBUG">
        <appender-ref ref="FILE"/>
    </root>
</configuration>
4

5 に答える 5

10

ファイル全体を上書きする必要がないログ レベルを変更するだけの場合は、次のようにします。

<root level="${log.level:-INFO}">

次に、システム プロパティを設定すると、次のようになります。

-Dlog.level=DEBUG

デフォルトの「INFO」を上書きします。

于 2013-02-18T15:56:28.553 に答える
6

外部プロパティは、ログ レベルを外部から制御する 1 つの方法です。Logback のファイル インクルード機能は別のものです。ちなみに、自動再読み込み機能は、含まれている構成ファイルでは機能しますが、プロパティ ファイルでは機能しません。

于 2013-01-12T00:09:36.707 に答える