2012-03-22 3 views
0

Logback 프레임 워크 v1.0.1을 사용하여 로깅합니다. Java에서 outputstream에 로그 메시지를 추가하는 방법을 알고 싶습니다.Logback : 출력 메시지 appender에 로그 메시지 추가

로그 메시지를 key = value 쌍으로 포맷하고 싶습니다. 결국 로그 메시지를 출력 스트림으로 가져오고 싶습니다. 로거 인스턴스를 검색하고 디버그 수준에서 메시지를 기록합니다.

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 in ch.qos.logback.core.OutputStreamAppender [outputstream] - 아니
출력 스트림은 "outputstream"이라는 appender에 대해 설정됩니다.

15 : 07 : 19.414 [주] INFO SplunkSearch.SplunkLogger - 랩 = 참, 거짓의 setValue =

15 : 07 : 19.430 [주] 디버그 SplunkSearch.SplunkLogger - 랩 = 참, 거짓의 setValue =

답변

0

"출력 스트림"이라는 appender에 대해 출력 스트림을 설정하지 않았습니다. " appender를 정의했지만 스트림을 출력하지 않았습니다. 나는 메시지를 쓸 곳을 모른다.

logback manual은 outputstream appender를 직접 사용하면 안된다고 말했습니다. 그리고 매뉴얼에서 출력 스트림을이 appender로 구성하는 방법을 찾지 못했습니다.

정말로 사용하고 싶다면 프로그램에 추가하는 것이 유일한 방법이라고 생각합니다.