Выход из системы: добавить сообщение журнала в выходной поток appender. - PullRequest
0 голосов
/ 22 марта 2012

Я использую Logback Framework 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 | -ERROR в ch.qos.logback.core.OutputStreamAppender [outputtream] - Нет
выходной поток установлен для приложения с именем «outputtream».

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

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

1 Ответ

0 голосов
/ 27 марта 2012

В нем сказано: «Не указан выходной поток для приложения с именем« outputtream »». Вы определили appender, но не выходной поток в нем. Я не знаю, где написать сообщение.

В руководстве по возврату сказано, что вы не должны напрямую использовать outputtream appender. И из руководства я также не нашел способа настроить поток вывода в этот appender.

Если вы действительно хотите его использовать, я думаю, единственный способ - добавить его в вашу программу.

...