Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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 Logback不会写入第三方日志服务_Java_Scala_Logging_Logback_Slf4j - Fatal编程技术网

Java Logback不会写入第三方日志服务

Java Logback不会写入第三方日志服务,java,scala,logging,logback,slf4j,Java,Scala,Logging,Logback,Slf4j,我正在设置更复杂的日志记录,而不是简单的控制台输出。Logback通过ConsoleAppender很好地编写日志。但当我添加额外的RollbarAppender时,它对它不起作用 下面是logback.xml的一个示例 <?xml version="1.0" encoding="UTF-8"?> <configuration > <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppen

我正在设置更复杂的日志记录,而不是简单的控制台输出。Logback通过ConsoleAppender很好地编写日志。但当我添加额外的RollbarAppender时,它对它不起作用

下面是logback.xml的一个示例

<?xml version="1.0" encoding="UTF-8"?>
<configuration >
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%highlight([%level]) - [%date] - [%logger]  %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="ROLLBAR" class="com.rollbar.logback.RollbarAppender">
        <accessToken>VERY_SECRET_TOKEN</accessToken>
        <encoder>
            <pattern>%highlight([%level]) - [%date] - [%logger]  %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="akka" level="ERROR" additivity="false">
        <appender-ref ref="ROLLBAR" />
    </logger>
    <logger name="slick" level="ERROR"/>

    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>

</configuration>
同时,此配置工作正常,并将日志发送到第三方日志服务,但不会写入控制台:

<?xml version="1.0" encoding="UTF-8"?>
<configuration >
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%highlight([%level]) - [%date] - [%logger]  %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="ROLLBAR" class="com.rollbar.logback.RollbarAppender">
        <accessToken>VERY_SECRET_TOKEN</accessToken>
        <encoder>
            <pattern>%highlight([%level]) - [%date] - [%logger]  %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="akka" level="INFO" additivity="false">
        <appender-ref ref="CONSOLE" />
    </logger>
    <logger name="slick" level="ERROR"/>

    <root level="ERROR">
        <appender-ref ref="ROLLBAR" />
    </root>

</configuration>
所以我很困惑。如何以这种方式使logback工作:

信息级事件写入控制台


错误级别事件写入控制台+滚动条

解决方案非常简单。标签解决了这个问题:它的日志记录级别覆盖了标签的日志记录级别

<appender name="RollBar" class="com.rollbar.logback.RollbarAppender">
  <accessToken> VERY_SECRET_TOKEN </accessToken>
  <environment>PROD</environment>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>ERROR</level>
    </filter>
</appender>
    ...
<root level="INFO">
  <appender-ref ref="CONSOLE" />
  <appender-ref ref="RollBar" />
</root>