0

我正在使用 Logback 框架 v1.0.1 进行日志记录。我想知道如何将日志消息附加到 java 中的输出流。

我想将日志消息格式化为键=值对最后我想将格式化日志消息作为输出流。我检索了记录器实例并在调试级别记录了消息。

    ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger)      LoggerFactory.getLogger("SplunkSearch.SplunkLogger");
    logger.info( "wrap = true, setValue = false,");
    logger.debug( "wrap = true, setValue = false,");


The logback.xml configuration file is as follows : 

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">

<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"         timeReference="contextBirth"/>

 <contextName>splunksearchcontext</contextName>

 <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
  <Target>System.out</Target>
  <encoder>
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  </encoder>
  </appender>

  <appender name= "outputstream" class="ch.qos.logback.core.OutputStreamAppender">
  <encoder>
  <pattern></pattern>
 </encoder>
 </appender>

 <root level="debug">
 <appender-ref ref="stdout"/>
 <appender-ref ref="outputstream" />
  </root>
 </configuration>

我运行时的输出如下。

我在状态消息中看到了这一行,这是一种错误。没有设置输出流。

15:07:19,399 |-ch.qos.logback.core.OutputStreamAppender[outputstream] 中的错误 - 没有
为名为“outputstream”的附加程序设置输出流。

15:07:19.414 [main] 信息 SplunkSearch.SplunkLogger - wrap = true,setValue = false,

15:07:19.430 [main] 调试 SplunkSearch.SplunkLogger - wrap = true,setValue = false,

4

1 回答 1

0

它说“没有为名为“outputstream”的附加程序设置输出流。” 您定义了一个附加程序,但没有在其中定义输出流。我不知道在哪里写消息。

logback 手册说你不应该直接使用 outputstream appender。而且从手册中,我也没有找到任何方法将输出流配置到这个附加程序中。

如果您真的想使用它,我认为唯一的方法是将它添加到您的程序中。

于 2012-03-27T02:22:30.500 回答