Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在FileAppender中使用Logback标记时出错_Java_Logback_Marker_Fileappender - Fatal编程技术网

Java 在FileAppender中使用Logback标记时出错

Java 在FileAppender中使用Logback标记时出错,java,logback,marker,fileappender,Java,Logback,Marker,Fileappender,我已经开始为我们的应用程序探索Logback选项。要求之一是为具有特定“标记”的日志条目创建单独的日志文件 下面是我正在使用的logback.xml文件和我得到的错误。logback网站上的示例显示了SMTPAppender的用法,但我想改用FileAppender。这可能吗?如果没有,我还有什么选择 <property name="USER_HOME" value="c:/temp" /> <appender name="AUDIT_FILE" class="ch.qos.

我已经开始为我们的应用程序探索Logback选项。要求之一是为具有特定“标记”的日志条目创建单独的日志文件

下面是我正在使用的logback.xml文件和我得到的错误。logback网站上的示例显示了SMTPAppender的用法,但我想改用FileAppender。这可能吗?如果没有,我还有什么选择

<property name="USER_HOME" value="c:/temp" />

<appender name="AUDIT_FILE" class="ch.qos.logback.core.FileAppender">        
    <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
        <marker>APPEND_SYSLOG</marker>
    </evaluator>
    <file>${USER_HOME}/mw_syslog.log</file>        
    <encoder>
        <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
    </encoder>
</appender>

<root level="debug">
    <appender-ref ref="AUDIT_FILE" />
</root>


    12:07:01,515 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/JavaProjects/LogbackWeb/target/LogbackWeb-1.0-SNAPSHOT/WEB-INF/classes/logback.xml]
    12:07:02,013 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
    12:07:02,134 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender]
    12:07:02,176 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [AUDIT_FILE]
    12:07:02,286 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@43:76 - no applicable action for [evaluator], current pattern is [[configuration][appender][evaluator]]
    12:07:02,286 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@44:21 - no applicable action for [marker], current pattern is [[configuration][appender][evaluator][marker]]
    12:07:02,310 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
    12:07:02,828 |-INFO in ch.qos.logback.core.FileAppender[AUDIT_FILE] - File property is set to [c:/temp/mw_syslog.log]
    12:07:02,836 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG
    12:07:02,836 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [AUDIT_FILE] to Logger[ROOT]
    12:07:02,842 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
    12:07:02,855 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@3ad1a015 - Registering current configuration as safe fallback point

附加系统日志
${USER\u HOME}/mw\u syslog.log
%日期%level[%thread]%记录器{10}[%file:%line]%msg%n
12:07:01515 |-ch.qos.logback.classic.LoggerContext[default]中的信息-在[file:/C:/JavaProjects/LogbackWeb/target/LogbackWeb-1.0-SNAPSHOT/WEB-INF/classes/logback.xml]中找到资源[logback.xml]
12:07:02013 |-ch.qos.logback.classic.joran.action.ConfigurationAction-debug属性中的信息未设置
12:07:02134 |-ch.qos.logback.core.joran.action.AppenderAction中的信息-即将实例化[ch.qos.logback.core.FileAppender]类型的appender
12:07:02176 |-ch.qos.logback.core.joran.action.AppenderAction中的信息-将appender命名为[AUDIT_FILE]
12:07:02286 |-ch.qos.logback.core.joran.spi中存在错误。Interpreter@43:76-没有适用于[evaluator]的操作,当前模式为[[configuration][appender][evaluator]]
12:07:02286 |-ch.qos.logback.core.joran.spi中存在错误。Interpreter@44:21-对[marker]没有适用的操作,当前模式为[[configuration][appender][evaluator][marker]]
12:07:02310 |-ch.qos.logback.core.joran.action.NestedComplexPropertyIA中的信息-假定[encoder]属性的默认类型为[ch.qos.logback.classic.encoder.PatternLayoutCoder]
12:07:02828 |-ch.qos.logback.core.FileAppender[AUDIT_FILE]-文件属性设置为[c:/temp/mw_syslog.log]
12:07:02836 |-ch.qos.logback.classic.joran.action.RootLoggerAction中的信息-设置要调试的根记录器的级别
12:07:02836 |-ch.qos.logback.core.joran.action.AppenderRefAction中的信息-将名为[AUDIT_FILE]的appender附加到记录器[ROOT]
12:07:02842 |-ch.qos.logback.classic.joran.action.ConfigurationAction中的信息-配置结束。
12:07:02855 |-ch.qos.logback.classic.joran中的信息。JoranConfigurator@3ad1a015-将当前配置注册为安全回退点

在SMT附件中,计算器用于触发。在FileAppender中,您需要将计算器封装在过滤器中,确切地说是一个过滤器。以下是一个例子:

<property name="USER_HOME" value="c:/temp" />

<appender name="AUDIT_FILE" class="ch.qos.logback.core.FileAppender">        
    <!-- the filter element -->
    <filter class="ch.qos.logback.core.filter.EvaluatorFilter">   
      <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
        <marker>APPEND_SYSLOG</marker>
      </evaluator>
     <onMismatch>DENY</onMismatch>
     <onMatch>NEUTRAL</onMatch>
   </filter>
    <file>${USER_HOME}/mw_syslog.log</file>        
    <encoder>
        <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
    </encoder>
</appender>

<root level="debug">
    <appender-ref ref="AUDIT_FILE" />
</root>

附加系统日志
否认
中立的
${USER\u HOME}/mw\u syslog.log
%日期%level[%thread]%记录器{10}[%file:%line]%msg%n

谢谢Ceki。成功了。感谢您的帮助。默认情况下,我的所有日志都将记录在server.log中,并且只有标记的ONCE被记录到FileAppender.N.B中指定的此文件中。在1.1.7中,
onmarkereevaluator
被破坏-您将得到错误
Unexpected aggregationType作为\u BASIC\u PROPERTY\u COLLECTION