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 [メイン] INFO SplunkSearch.SplunkLogger - ラップ = true、setValue = false、

15:07:19.430 [メイン] DEBUG SplunkSearch.SplunkLogger - ラップ = true、setValue = false、

4

1 に答える 1

0

「「outputstream」という名前のアペンダーに出力ストリームが設定されていません。アペンダーを定義しましたが、その中に出力ストリームはありません。メッセージの書き方がわかりません。

logback マニュアルには、outputstream アペンダーを直接使用しないでくださいと記載されています。また、マニュアルから、出力ストリームをこのアペンダーに構成する方法も見つかりませんでした。

本当に使いたいのなら、プログラムに追加するしか方法はないと思います。

于 2012-03-27T02:22:30.500 に答える