web-dev-qa-db-ja.com

Wildfly 8.2でログを設定する正しい方法

Wildfly-8.2.0でのログの設定に混乱があります。最初は、WARファイルにlog4j.xmlが組み込まれている独自のロギングシステムを使用していましたが、すべて非常にうまく機能していました。ただし、ログ構成に変更を加える場合は、変更を有効にするためにアプリを再デプロイする必要があります。そこで、JBossロガーサブシステムに切り替えました。以下は、standalone.xmlからjboss-cliに対して行った構成です

/subsystem=logging/custom-handler=myplatform:add(class=org.Apache.log4j.RollingFileAppender, module=org.jboss.log4j.logmanager, formatter="%d{.yyyy-MM-dd} %-5p [%c] (%t) %s%E%n", properties={MaxFileSize=1024000,maxBackupIndex=20,file="${jboss.server.log.dir}/myplatform-debug.log"})

そのため、standalone.xmlに以下の構成を追加しました

            <custom-handler name="example" class="org.Apache.log4j.RollingFileAppender" module="org.jboss.log4j.logmanager">
                <formatter>
                    <pattern-formatter pattern="%d{.yyyy-MM-dd} %-5p [%c] (%t) %s%E%n"/>
                </formatter>
                <properties>
                    <property name="MaxFileSize" value="1024000"/>
                    <property name="maxBackupIndex" value="20"/>
                    <property name="file" value="${jboss.server.log.dir}/ott-platform-log.log"/>
                </properties>
            </custom-handler>

そして、このためのロガー

<logger category="com.mycompany.project.module1">
  <level name="DEBUG"/>
    <handlers>
      <handler name="myplatform"/>
    </handlers>
</logger>

すべてうまくいきますが、私のアプリケーションログはすべてサーバーログにも記録されます。そして、コンソールログにも。私のプロジェクトでロガーを個別に構成したので、これが発生したくありません! server.logにログインしているサーバーログを停止するにはどうすればよいですか?または、これにアペンダーを使用する方法はありますか?もしそうなら?

10

「きれい」からstandalone.xml私は次のことを行います。

  1. ハンドラーをコンソールに追加します。
<profile>
    <subsystem xmlns="urn:jboss:domain:logging:2.0">
        ...
        <console-handler name="CONSOLE_HANDLER">
            <level name="DEBUG"/>
            <formatter>
                <named-formatter name="Eclipse_PATTERN"/>
            </formatter>
        </console-handler>
        ...
  1. ログファイルが必要な場合:
<profile>
    <subsystem xmlns="urn:jboss:domain:logging:2.0">
       ...
       <periodic-rotating-file-handler name="MI_PROJECT_FILE_HANDLER" autoflush="true">
            <formatter>
                <named-formatter name="Eclipse_PATTERN"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="myProject.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
       ...
  1. ロガー(1と2と同じレベル)use-parent-handlers
<logger category="com.company.project" use-parent-handlers="false">
    <level name="DEBUG"/>
    <handlers>
        <handler name="MI_PROJECT_FILE_HANDLER"/>
        <handler name="CONSOLE_HANDLER"/>
    </handlers>
</logger>
  1. 私はカスタムパターンを使用しました(同じレベル):
<formatter name="Eclipse_PATTERN">
    <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter> 
  1. これを確認してください:
<root-logger>
    <level name="INFO"/>
    <handlers>
        <handler name="CONSOLE"/>
        <handler name="FILE"/>
    </handlers>
</root-logger>
21
Manu