2011-12-30 6 views
0

すべてのロギング・イベントをファイル・アペンダーに送信し、エラーまたはそれ以上のイベントをJMSAppenderにロギングするようにlog4jを構成しようとしています。ただし、JMSAppenderのしきい値をERRORに設定すると、エラーまたはそれ以上のエラーはファイルアペンダに書き込まれません。ここに私の構成は次のとおりです。事前に異なるしきい値を持つLog4J複数のアペンダー

<appender name="JBOSS" class="org.jboss.logging.appender.DailyRollingFileAppender"> 
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" /> 
      <param name="File" value="${jboss.server.log.dir}/server.log" /> 
      <param name="Append" value="true" /> 

      <!-- Rollover at midnight each day --> 
      <param name="DatePattern" value="'.'yyyy-MM-dd" /> 

      <layout class="org.apache.log4j.PatternLayout"> 
        <!-- 
          The default pattern: Date Priority [Category] Message\n 
          <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> 
        --> 

        <!-- 
          The full pattern: Date MS Priority [Category] (Thread:MDC) Message\n 
        --> 
        <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%X{TXID}) %m%n" /> 
      </layout> 
    </appender> 

    <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender"> 
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" /> 
      <param name="File" value="${jboss.server.log.dir}/app.log" /> 
      <param name="Append" value="true" /> 
      <param name="Threshold" value="DEBUG" /> 
      <!-- Rollover at midnight each day --> 
      <param name="DatePattern" value="'.'yyyy-MM-dd" /> 

      <layout class="org.apache.log4j.PatternLayout"> 
        <!-- 
          The default pattern: Date Priority [Category] Message\n 
          <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> 
        --> 

        <!-- 
          The full pattern: Date MS Priority [Category] (Thread:MDC) Message\n 
        --> 
        <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%X{TXID}) %m%n" /> 
      </layout> 
    </appender> 



    <appender name="TOPIC_APPENDER" class="org.apache.log4j.net.JMSAppender"> 
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" /> 
      <param name="Threshold" value="ERROR"> 
      <param name="ProviderURL" value="jnp://SERVERX:1099/" /> 
      <param name="InitialContextFactoryName" value="org.jnp.interfaces.NamingContextFactory" /> 
      <param name="URLPkgPrefixes" value="org.jboss.naming:org.jnp.interfaces" /> 
      <param name="TopicConnectionFactoryBindingName" value="ClusteredConnectionFactory"/> 
      <param name="TopicBindingName" value="errorLogTopic"/> 
    </appender> 

    <!-- Buffer events and log them asynchronously --> 

    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender"> 
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" /> 
      <appender-ref ref="JBOSS" /> 
    </appender> 

    <appender name="APP-ASYNC" class="org.apache.log4j.AsyncAppender"> 
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" /> 
      <appender-ref ref="FILE" /> 
      <appender-ref ref="TOPIC_APPENDER" /> 
    </appender> 



    <!-- ================ --> 
    <!-- Limit categories --> 
    <!-- ================ --> 

    <!-- 
      This is the top of the logging configuration. APP events will not go 
      to the JBoss logger. 
    --> 

    <category name="com.app.pkg" additivity="false"> 
      <priority value="DEBUG" /> 
      <appender-ref ref="APP-ASYNC" /> 
    </category> 

    <root> 
      <priority value="INFO" /> 
      <appender-ref ref="ASYNC" /> 
    </root> 

ありがとう!

答えて

0

はJMSAppenderの閾値パラメータに '/' がありません:

<param name="Threshold" value="ERROR"> 

<param name="Threshold" value="ERROR" /> 
する必要があります
関連する問題