- PR -

log4jのアペンド、個別設定に関して

1
投稿者投稿内容
キラヤマト
会議室デビュー日: 2004/05/26
投稿数: 12
投稿日時: 2004-05-29 11:08
同じようなこと、やり方をご存知の方いましたら
ご教授下さい。

log4jでコンソールとログファイルA、ログファイルBに出力します。
ログ出力のクラスでこのメッセージはコンソールだけとか
ログファイルAだけとか 全部とか制御したいのです。

それぞれAppenderを生成し設定したのですが
コンソールAppenderしか設定していないのに
ログにも総て出てしまいます
removeAllAppendersでAppenderを初期化してもダメです
以下がコードの抜粋です。


宣言
private static Category runlogger = Category.getInstance(A.class);
private static Category conlogger = Category.getInstance(A.class);
private static Category errorlogger = Category.getInstance(A.class);

private static RollingFileAppender runAppender = null;
private static RollingFileAppender errorAppender = null;
private static ConsoleAppender consolAppender = null;


処理
PatternLayout layout = new PatternLayout();
layout.setConversionPattern("%d{yyyy-MM-dd HH:mm:ss} %m%n");
runAppender = new RollingFileAppender(layout ,"C:\\run.log");
errorAppender = new RollingFileAppender(layout ,"C:\\error.log");
consolAppender = new ConsoleAppender(layout);

runAppender.setMaxFileSize("100KB");
runAppender.setMaxBackupIndex(3);

errorAppender.setMaxFileSize("100KB");
errorAppender.setMaxBackupIndex(3);


conlogger.addAppender(consolAppender);
runlogger.addAppender(runAppender);
errorlogger.addAppender(errorAppender);

出力
conlogger.debug("メッセージ");

こいつが コンソールにも、ログにもでてしまいます。

何か方法教えてください。
佐々木
大ベテラン
会議室デビュー日: 2003/03/30
投稿数: 121
投稿日時: 2004-05-29 18:36
引用:

private static Category runlogger = Category.getInstance(A.class);
private static Category conlogger = Category.getInstance(A.class);
private static Category errorlogger = Category.getInstance(A.class);


この3つのロガーは全部同一のオブジェクトですよ。

あと、これは余計なお世話かもしれませんが、CategoryじゃなくてLoggerを使うのが今風です。
1

スキルアップ/キャリアアップ(JOB@IT)