2016-11-17 14 views
1

log4jpropertiesファイルに以下のパッケージアペンダーを試しましたが、動作しませんでした。 この問題を解決するのを手伝ってください。log4j 1.xでパッケージベースのワイルドカードを指定することは可能ですか?

log4j.logger.com.ewp.*.service=ERROR,SERVICELOG 

#SERVICELOG appender 
log4j.appender.SERVICELOG=org.apache.log4j.RollingFileAppender 
log4j.appender.SERVICELOG.File=C:/Log/service_log.log 
log4j.appender.SERVICELOG.layout=org.apache.log4j.PatternLayout 

答えて

0

あなたがそれを行うことができなくなりますのでプレフィックスのlog4j(1.1)での継承の唯一の概念は、あります。

https://logging.apache.org/log4j/1.2/manual.html

にあなたの設定ファイルに任意の* .serviceの葉のパッケージを配置する必要があります参照してください。

また、別のロガー名を使用することもできますし、ネーミングスキームを逆転させることもあれば、よりシンボリックなものを使用することもできます(専用ログが必要な場合は有効です)。また、コーディングオーバーヘッドが許容される場合は、セカンダリロガーを使用してください。

だと思うの:

Logger log = Logger.getLogger("any.string.prefix.here." + "some.suffix"); 

編集:あなたは、クラスパスを変更することができますし、それにlog4jの-エキストラを入れた場合、あなたはそこからフィルタでいくつかの助けを得る可能性があります:https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/filter/package-summary.html

しかしAFAICS ExpressionFilterフィルターは、の正確なロガー名にあるMessageとLoggerMatchFilterフィルターにフィルターをかけます。

関連する問題