Xml構成のログバックでアペンダーを無効にできますか?構成があり、データベース用とテキストログ用の2つのアペンダーを配置したいのですが、アクティブ化する必要があるのは1つだけです。ありがとう!
アペンダーを非アクティブ化する理由がわからない場合、無効化することで何を達成しようとしていますか。
それを達成するためのいくつかの方法があります
<configuration>
<appender name="stdoutappender" />
<appender name="dbappender" />
<logger name="stdoutlogger" level="DEBUG">
<appender-ref ref="stdoutappender" />
</logger>
<logger name="dblogger" level="OFF">
<appender-ref ref="dbappender" />
</logger>
</configuration>
この場合も、ログバック構成(logback.xml)を変更するときに構成を再ロードする必要があります。
上記の3つのオプションに加えて、ログバック構成をプログラムで作成できます
アペンダーのログレベルを選択する簡単な方法は、ThresholdFilter
を使用することです。例:
<appender name="ap.Console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${logging.appender.console.level:-OFF}</level>
</filter>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>
特定のアペンダーをアクティブ化する場合は、適切な-D
オプションを指定してjvmを実行する必要があります。上で定義されたアペンダーの場合、次のようになります。
Java -Dlogging.appender.console.level=DEBUG
もちろん、自動構成の再読み込みを有効にすると( http://logback.qos.ch/manual/configuration.html#autoScan )、アプリの実行中にフィルターレベルを変更できます。
私が提案したアプローチは、アプリを起動するたびに(さまざまなログレベルで)ログバック構成ファイルを変更したくない場合に便利です。対応する-D
オプションを指定してjvmを実行することにより、ログバック構成で使用されるプロパティを設定するだけです。