50

最近log4jからlogbackに切り替えましたが、log4jのlog4j.debugプロパティと同様に、デバッグモードでlogbackを実行する簡単な方法があるかどうか疑問に思っています。私はそれがどこから私のものを拾っているのかを見る必要がありますlogback.xml

ドキュメントには、StatusPrinterログバックの内部ステータスを出力するためにを使用することが記載されていますが、コードを変更する必要があります。

4

5 に答える 5

72

[編集]

これは Logback 1.0.4 で修正されました。を使用-Dlogback.debug=trueして、logback セットアップのデバッグを有効にできるようになりました。

-- 古い回答 --

残念ながら、システム プロパティを介してデバッグを有効にする方法はありません。で使用する必要<configuration debug="true">がありlogback.xmlます。機能リクエストを送信してください。

于 2010-09-27T08:18:07.163 に答える
4

これが私のやり方です。「log.level」というシステム プロパティを設定し、logback.xml で参照します。

編集:欠点は、「log.level」を常に設定する必要があることです。これに対処する方法は、メイン メソッドをチェックインし、まだ設定されていない場合は INFO に設定することです。最初に呼び出しをログに記録する前に、必ずこれを行ってください。次に、コマンド ラインでオーバーライドして、適切なデフォルトを設定します。

これが私のlogback.xmlでどのように見えるかです:

<configuration>
    <logger name="com.mycompany.project" level="${log.level}" />
    <logger name="httpclient" level="WARN" />
    <logger name="org.apache" level="WARN" />
    <logger name="org.hibernate" level="WARN" />
    <logger name="org.hibernate.cfg.AnnotationBinder" level="WARN" />
    <logger name="org.hibernate.cfg.annotations" level="WARN" />
    <logger name="org.quartz" level="WARN" />
    <logger name="org.springframework" level="WARN" />

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-16thread] %-5level %-35.35logger{30} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="${log.level:-INFO}">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
于 2011-05-04T13:53:55.627 に答える
1

選択した回答を使用して機能させることができませんでした。ただし、以下は機能しました。

java -Dlogback.configurationFile=/path/to/config-debug.xml com.domain.Main

サーバーのどこかにファイル (この例では) を追加し、config-debug.xmlデバッグが必要なときはそのままにしておきます。以下のように。

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{dd-MMM-yyyy HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

前述の-Dパラメーターを使用してアプリケーションを実行します。

正常に戻ったら、-Dパラメータを削除してアプリケーションを再起動します。

出典:第 3 章: Logback 構成

于 2017-05-04T18:00:47.430 に答える
1

システム プロパティを介してステータス リスナー クラスを設定できます。

java -Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener ...

参照: Logback マニュアル

于 2017-11-01T09:36:50.753 に答える
-1

Eclipse では、複数の実行構成を持つことができます。メインクラスを開きます。Eclipse ツールバーの [デバッグ] ドロップダウンに移動し、[デバッグ構成] を選択します。左上にある [新しい起動構成] アイコンをクリックします。起動構成に適切な名前を付けます。名前の下にある Arguments タブをクリックし、 -Dlog.level=debug など、必要なものを入力します。[閉じる] または [デバッグ] をクリックします。

これをもう一度実行して、たとえば -Dlog.level=warn を指定できます。

于 2016-09-28T14:55:35.227 に答える