18

私は tomcat を使用し、単にデフォルトのロギング システムをオーバーライドしました。春のアプリでワイルドフライでログバックを使用してログを有効にするにはどうすればよいですか?

Tomcatで動作する私のLogback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
        </encoder>
    </appender>

    <logger name="org.springframework" level="WARN" />
    <logger name="com.citronium.planstery" level="INFO" />
    <logger name="org.apache.http.impl.conn.tsccm" level="ERROR" />

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

2 に答える 2

34

logback を使用して、アプリケーションのロギングを構成できます。logback を使用してサーバーのログを構成することはできません。

構成で logback を使用するには、 を に変更add-logging-api-dependenciesするか、サブシステムを除外する をfalse作成する必要があります。jboss-deployment-structure.xmlまた、デプロイに logback と slf4j を含める必要があります。

を変更する最初のオプションはadd-logging-api-dependencies、すべての展開のグローバル設定です。次の CLI コマンドは、値を変更します。

/subsystem=logging:write-attribute(name=add-logging-api-dependencies,value=false)

このオプションは、暗黙的なログの依存関係を展開に追加しません。

を使用する 2 番目のオプションはjboss-deployment-structure.xml、展開のログ サブシステムのみを無効にします。以下はファイルの例です。

<jboss-deployment-structure>
  <deployment>
     <!-- exclude-subsystem prevents a subsystems deployment unit processors running on a deployment -->
     <!-- which gives basically the same effect as removing the subsystem, but it only affects single deployment -->
     <exclude-subsystems>
        <subsystem name="logging" />
    </exclude-subsystems>
  </deployment>
</jboss-deployment-structure>
于 2014-02-19T17:12:15.827 に答える
5

これを行う方法は次のとおりです。ちなみに、wildfly-8.1.0-Final を使用しています。

まず、このクラスを含む jar ファイルを作成します: https://gist.github.com/xiaodong-xie/219491e0b433f8bd451e

次に、この jar ファイルを「wildfly-8.1.0.Final/modules/system/layers/base/org/jboss/logmanager/main」に配置し、この jar ファイルへの参照を module.xml ファイルのまったく同じ場所に追加します。フォルダ。

次に、「logback-classic-1.1.2.jar」と「logback-core-1.1.2.jar」(選択した任意のバージョンのログバックを使用できます) を「wildfly-8.1.0.Final/modules/system/」に配置します。これらの 2 つの jar ファイルを module.xml ファイルで参照します。

使用しているstandalone.xmlの「subsystem:logging」に次を追加します。

<custom-handler name="logback" class="org.slf4j.bridge.SLF4JBridgeHandler" module="org.jboss.logmanager"></custom-handler>

そして、次の root-logger 要素でこのハンドラーを参照します。

        <root-logger>
            <level name="INFO"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="logback"/>
            </handlers>
        </root-logger>

logback.xml の例を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"/>

<appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${JBOSS_HOME}/standalone/log/server-logback.log</file>
    <append>true</append>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
    <appender-ref ref="LOGFILE"/>
</appender>
<root level="INFO">
    <appender-ref ref="ASYNC"/>
</root>
</configuration>

そして、この logback.xml ファイルを「wildfly-8.1.0.Final/standalone/configuration」フォルダーに入れます。

以下を「wildfly-8.1.0.Final/bin」フォルダーの「standalone.sh」または同等のファイルに追加します。

-Dlogback.configurationFile=file:$JBOSS_CONFIG_DIR/logback.xml

「-Dlogging.configuration=file:$JBOSS_CONFIG_DIR/logging.properties」行のすぐ下。「standalone.sh」ファイルには 2 か所あります。

================================================== ===============================

または、より簡単な方法で行うこともできます。:)

2 つの logback jar ファイルを「jboss.logmanager」モジュールに置き、「-Dorg.jboss.logging.provider=slf4j」を「standalone.sh」ファイルの同じ位置に追加します。

ちなみに、Wildfly 自体はまだ独自のロギング機能を使用しているため、この方法で行った場合、いくつかのロギングが欠落していることがわかりました。

楽しむ。:-)

于 2014-10-13T14:19:11.803 に答える