2016-05-21 31 views
6

私はchainsawとlog4jを初めて使用しています。これは以前のpostのフォローアップです。私は、次の設定ファイルを使用してジグソーパズルするレコードを送信するためのソケット・ハンドラを使用するいくつかのデバイスを持っている:複数のデバイスからの入力用にapache chainsawを設定する方法

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration > 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 
<plugin name="XMLSocketReceiver" class="org.apache.log4j.net.XMLSocketReceiver"> 
     <param name="decoder" value="org.apache.log4j.xml.UtilLoggingXMLDecoder"/> 
     <param name="Port" value="2222"/> 
    </plugin> 
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender"> 
     <param name="Threshold" value="INFO" /> 
     <param name="File" value="chainsawtablet.log"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n" /> 
     </layout> 
    </appender> 
<root> 
    <priority value="debug"/> 
    <appender-ref ref="fileAppender" /> 
</root> 
</log4j:configuration> 

受信機は、私はいくつかのログレコードでチェーンソーGUIのタブを参照してくださいということで動作しているようです。しかし、決してログファイルを書くようではありません。多分それは一日何か行くのを待っています。ロールオーバをより頻繁に行う方法はありますか?

ログファイルに記録がありません。受信機をアペンダーにフックするためにいくつかのxmlが必要ですか、それとも自動ですか?

ソースファイルでログファイルを区切りたいと思います。また、接続が再開された場合、私はログファイルをロールオーバーしたいと思います。

また、1週間分のログファイルを保存したいと考えています。

私は、ログレコードのすべてを見てみたい、そうすべきである:param name="Threshold"value="INFO"ALLの代わりINFOこと?

についてはどうですか:priority value="debug"

何か指摘します。

編集:試してみてください:datePattern value="yyyyMMdd-HHmm" 1分ごとにロールオーバーすると、ログファイルも生成されません。

編集関連questionおよびpost、またhereおよびthereです。

答えて

0

log4jがチェーンソーに接続されていないようです。チェーンソーのGUIに表示されているログメッセージ - 内部のチェーンソーの自己ロギングメッセージのようですか?

SocketAppenderを設定し、少なくとも1つのロガーまたはルートロガーにリンクする必要があります。アプリケーションからのイベントがチェーンソーに表示されます。別の問題であるログファイルにログアウトしたいのですが、チェーンソーをライブイベント表示GUIとして使用したいと思っています。それはほとんどの人がそれを使用しているからです。私はlog4jのを使用していない

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' debug='true'> 

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %5p %c - %m%n"/> 
    </layout> 
    </appender> 

    <appender name="CHAINSAW" class="org.apache.log4j.net.SocketAppender"> 
    <param name="RemoteHost" value="localhost"/> 
    <param name="Port" value="4445"/> 
    <param name="LocationInfo" value="true"/> 
    </appender> 

    <root> 
    <level value ="debug"/> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="CHAINSAW" /> 
    </root> 

</log4j:configuration> 
+0

はここで、最小限の設定ファイルです。私が見ているメッセージは、xmlソケットレシーバからのものです - 通常のxml jdkログ記録のように見えます。 –

+0

あなたは、私は各受信機のためにアペンダーが必要だと言っていますか? –

+0

私はあなたがセットアップしようとしていることに従うことに苦労しています。あなたは_iがchainsawとlog4j_の新しいことを言いますが、_iはlog4j_を使用していません。 _jigsaw_とは何ですか?チェーンソーで何をしようとしていますか?ログイベントを監視するためのGUIがありますか?ロギングを行うアプリケーションを設定できますか? 'log4j' APIを実行し、リモートソケットにログを記録していますか? – javabrett