1

次のパターンのlog4jファイルがあります。

@|%d{yyyy-MM-dd HH:mm:ss.SSS}|%X{Machine}|%X{CorrelationId}|%X{Sender}|%X{Receiver}|%-5p|%X{Runtime}|%X{ClientUser}|%c|%M|%L|%m%n

次のパターンでLogFilePatternReceiverを作成しました。

@|TIMESTAMP|PROP(MACHINE)|PROP(CORRELATIONID)|PROP(SENDER)|PROP(RECEIVER)|LEVEL|PROP(RUNTIME)|PROP(CLIENTUSER)|CLASS|METHOD|LINE|MESSAGE

しかし、そのレシーバーを起動すると、エラーが発生します。

java.lang.IllegalArgumentException: invalid expression: 
    at org.apache.log4j.rule.ExpressionRule$PostFixExpressionCompiler.compileExpression(ExpressionRule.java:132)
    at org.apache.log4j.rule.ExpressionRule.getRule(ExpressionRule.java:64)
    at org.apache.log4j.rule.ExpressionRule.getRule(ExpressionRule.java:56)
    at org.apache.log4j.varia.LogFilePatternReceiver.initialize(LogFilePatternReceiver.java:557)
    at org.apache.log4j.varia.LogFilePatternReceiver$1.run(LogFilePatternReceiver.java:801)
    at java.lang.Thread.run(Unknown Source)

regexp is @|(\w+-\w+-\w+ \w+:\w+:\w+.\w+)|(.+?)|(.+?)|(.+?)|(.+?)|(.+?)|(.+?)|(.+?)|(.+?)|(.+?)|(.+?)|(.+)

エラーがどこにあるのか本当にわかりませんか?何か入力はありますか?非標準の列にこのような「PROP(...)」キーワードを使用できますか?

4

1 に答える 1

2

はい、独自の列にPROPキーワードを使用できます。

チェーンソーの最新の開発者スナップショットを試すことができますか?FileAppenderエントリを含むlog4j.xmlまたはlog4j.properties構成を解析し、それを処理するために一致するチェーンソー構成を構築します。

ここで利用可能なスナップショット..新しいバージョンには、多くの新機能もあります。

http://people.apache.org/~sdeboy

通常、人々をつまずかせるのはタイムスタンプの書式設定と特殊文字ですが、ここでは奇妙なことは何も見られないので、最新の開発者スナップショットが役立つかどうかを確認してください。

スコット

于 2012-05-22T19:44:10.893 に答える