2016-04-28 2 views
-3

私は「hypotetically話す」クラス動物の3つのオブジェクト... 1、クラスの食品1を持つJavaアプリケーションを持って、それらが任意の継承やインターフェースによっては関係ありません..andウィッヒは、動物や食べ物のリストのリストを持っているクラスマネージャの最後の一つは、マネージャが...Log4jの選択アペンダ

ポイントへ

...それらの動物や食べ物がある動物園のために責任があります

log4jとI nを使用していますかへのログtxtファイルの場合のみ動物リストが変更された場合(動物死亡、生まれたこと、またはこれまで...)、私はにログインする必要があります。食品のリストの中何かが変化した場合...(新しい食品が必要で、食べ物が食べられた、今までに何...)

私の質問:

がどのように私はlog4jのでことを行うことができますか?

私がここに発見した: Log4j : Creating/Modifying appenders at runtime, log file recreated and not appended

何か動的にアペンダを変更するよう

String targetLog="where ever you want your log" 
FileAppender apndr = new FileAppender(new PatternLayout("%d %-5p [%c{1}] %m%n"),targetLog,true);  
logger.addAppender(apndr); 
logger.setLevel((Level) Level.ALL); 

が、私は、これはすべての穴のアプリケーション上で常にアペンダを追加および削除することが非常に醜いとエラーが発生しやすいと思い..

これを処理する方法はありますか 私は2つのロガーを持っていますか?食べ物)?

任意の提案??

ありがとうございました

答えて

0

これは、私はそれが動作するようになった方法です:

プロパティ

log4j.rootLogger=TRACE, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d [%5F:%t:%L] - %m%n 

log4j.appender.animalLogger=org.apache.log4j.FileAppender 
log4j.appender.animalLogger.File=animal.log 
log4j.appender.animalLogger.layout=org.apache.log4j.PatternLayout 
log4j.appender.animalLogger.layout.ConversionPattern=%d [%5F:%t:%L] - %m%n 

log4j.category.animalLogger=DEBUG, animalLogger 
log4j.additivity.animalLogger=false 

log4j.category.foodlLogger=DEBUG, stdout 
log4j.additivity.foodlLogger=false 

static final Logger animalLogger = Logger.getLogger("animalLogger"); 
static final Logger foodlLogger = Logger.getLogger("foodlLogger"); 

の設定とロガーとログをロードする:

public static void main(String[] args) { 
    PropertyConfigurator.configure("log4j.properties"); 
    animalLogger.debug("Hello animalLogger message"); 
    foodlLogger.debug("Hello reportsLog message"); 
} 
0

これはlog4j.xmlファイルの設定から厳密に行うことができます。そこに2つのアペンダーを定義し、2つのロガー要素を持つことができます.1つは、動物を最初のアペンダーに結びつけ、もう1つは別のアペンダーに結びつけます。おそらく、デフォルトの振る舞いを定義するための要素も必要です。

関連する問題