私はTomcatを使用し、デフォルトのロギングシステムを単にオーバーライドしました。 Springアプリでwildflyのlogbackによるロギングを有効にする方法は?
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>
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)
このオプションは、展開に implicit ロギングの依存関係を追加しません。
jboss-deployment-structure.xml
を使用する2番目のオプションは、デプロイメントのみのロギングサブシステムを無効にします。以下はファイルの例です。
<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>
ちなみに、ここでは、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」(選択した任意のバージョンのlogbackを使用できます)を「wildfly-8.1.0.Final/modules/system/」に配置しますlayers/base/org/jboss/logmanager/main」、およびmodule.xmlファイル内の2つのjarファイルを参照します。
使用している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」フォルダーに配置します。
以下を「standalone.sh」または「wildfly-8.1.0.Final/bin」フォルダー内の同等のものに追加します。
-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自体がまだ独自のロギング機能を使用しているため、ロギングが欠落していることがわかりました。
楽しんで。 :-)