2017-11-16 12 views
1

コンソール出力はスイングコンソールにリダイレクトされています。コードにsysoutを追加すると、テキストがswingコンポーネントに表示されます。 私はlog4jからの私のコンソール出力がこのswingコンポーネントにも現れると考えました。しかし、log.info()メッセージは引き続きEclipseコンソールに表示されます。 スイングコンポーネントにメッセージをリダイレクトするHandlerをデバッグすると、ロガーのメッセージがそこを通過しないことがわかります。しかしながら、Sysoutメッセージはそうです。スイングコンソールにリダイレクトされたsysout、log4jの内容はありません

誰も私にここで間違っているかもしれないヒントを教えてもらえますか?同時に2台のコンソールを使用できますか?ここで

はlog4jのための私の設定です:

log4j.rootLogger=INFO, stdout, file 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C{1} - %m%n 
log4j.appender.stdout.filter.filtro=org.apache.log4j.varia.LevelRangeFilter 
log4j.appender.stdout.filter.filtro.levelMin=ALL 
log4j.appender.stdout.filter.filtro.levelMax=FATAL 

答えて

0

ソリューションは非常にシンプルですが追跡するのが難しかったです。私はコンソールコンポーネントを持っていたGUIクラスのLoggerを使いました。だから私は、スイングコンソールにリダイレクトされたコードが実行される前に、Loggerが初期化されたと思います。このコードが実行されたとき、Loggerがすでに設定されているので、それはそのままだった。

GUIクラスからロガーを削除したとき、すべて正常に機能しました。

関連する問題