JBoss AS 7.0.2.Finalを使用していますが、変更する機会はありません。
さまざまなカテゴリのさまざまなログファイルを作成するためにstandalone.xmlを構成しようとしました。私の問題はこれです:各ロガーの出力は指定されたファイルに正しく追加されますが、server.logファイルにも書き込まれます。
ロギングサブシステムの構成全体があります。
<subsystem xmlns="urn:jboss:domain:logging:1.1">
<console-handler name="CONSOLE" autoflush="true">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
</console-handler>
<periodic-rotating-file-handler name="FILE" autoflush="true">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<periodic-rotating-file-handler name="REQUEST" autoflush="true">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%m%n"/>
</formatter>
<file path="/Logs/requests.log"/>
<suffix value=".yyyy-MM-dd-HH"/>
<append value="true"/>
</periodic-rotating-file-handler>
<periodic-rotating-file-handler name="ALARMS" autoflush="true">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%m%n"/>
</formatter>
<file path="/Logs/alarms.log"/>
<suffix value=".yyyy-MM-dd-HH"/>
<append value="true"/>
</periodic-rotating-file-handler>
<logger category="com.maucho.alarm" use-parent-handlers="false">
<level name="INFO"/>
<handlers>
<handler name="ALARMS"/>
</handlers>
</logger>
<logger category="com.maucho.request" use-parent-handlers="false">
<level name="INFO"/>
<handlers>
<handler name="REQUEST"/>
</handlers>
</logger>
<logger category="com.arjuna">
<level name="WARN"/>
</logger>
<logger category="org.apache.tomcat.util.modeler">
<level name="WARN"/>
</logger>
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
<logger category="com.hp.autopassj">
<level name="WARN"/>
</logger>
<logger category="org.jboss.as.server.deployment">
<level name="ERROR"/>
</logger>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
</subsystem>
ASを起動すると、standalone.xmlファイルが上書きされ、属性use-parent-handlers = "false"のないロガータグが何も置き換えられず、動作がデフォルト値のuse-parent-handlers="true"に設定されます。
<subsystem xmlns="urn:jboss:domain:logging:1.1">
<console-handler name="CONSOLE" autoflush="true">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
</console-handler>
<periodic-rotating-file-handler name="FILE" autoflush="true">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<periodic-rotating-file-handler name="REQUEST" autoflush="true">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%m%n"/>
</formatter>
<file path="/Logs/requests.log"/>
<suffix value=".yyyy-MM-dd-HH"/>
<append value="true"/>
</periodic-rotating-file-handler>
<periodic-rotating-file-handler name="ALARMS" autoflush="true">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%m%n"/>
</formatter>
<file path="/Logs/alarms.log"/>
<suffix value=".yyyy-MM-dd-HH"/>
<append value="true"/>
</periodic-rotating-file-handler>
<logger category="com.maucho.alarm">
<level name="INFO"/>
<handlers>
<handler name="ALARMS"/>
</handlers>
</logger>
<logger category="com.maucho.request">
<level name="INFO"/>
<handlers>
<handler name="REQUEST"/>
</handlers>
</logger>
<logger category="com.arjuna">
<level name="WARN"/>
</logger>
<logger category="org.apache.tomcat.util.modeler">
<level name="WARN"/>
</logger>
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
<logger category="com.hp.autopassj">
<level name="WARN"/>
</logger>
<logger category="org.jboss.as.server.deployment">
<level name="ERROR"/>
</logger>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
</subsystem>
ドキュメントは非常に貧弱で、パラメータuse-parent-handlers = "false"を入力するだけでよいと書かれていますが、機能しません。
さらに、コードorg.apache.log4j.Loggerをorg.apache.commons.logging.LogFactoryでorg.apache.commons.logging.Logに変更したところ、同じ結果が得られ、両方のファイルに出力が記録されました(/ Logs / requests.logまたは/Logs/alarms.logANDserver.log)。
私の参照: https ://community.jboss.org/message/731527 http://commons.apache.org/logging/guide.html