私のアプリケーションでは、入力ファイル (myFile1.txt など) を読み込み、同じ名前の出力ファイル (myFile2log など) を作成します。ポイントは、inputfile が Java アプリケーション内で読み取られ、コマンド ライン パラメータとして指定されないことです。したがって、アプリケーションでアペンダーを設定する必要があります。
public class Example {
private static final Logger LOG = Logger.getLogger(Example.class);
public Example() throws IOException {
FileAppender appender = new DailyRollingFileAppender(new PatternLayout(
PatternLayout.DEFAULT_CONVERSION_PATTERN), "yourfilename.log",
"'.'yyyy-MM-dd");
LOG.addAppender(appender);
LOG.setLevel((Level) Level.DEBUG);
LOG.debug("blabla");
new RandomClass();
}
public static void main(String[] args) throws IOException {
new Example();
}
}
public class RandomClass {
private static final Logger LOG = Logger.getLogger(RandomClass.class);
public RandomClass() {
LOG.debug("hello Randomclass");
}
}
そして、ここに問題があります。上記を実行すると、カスタム ファイル アペンダーは、fileappender が定義された特定のクラスに対してのみ機能しますが、他のクラスでは機能しません。したがって、「RandomClass」の出力はこのログファイルに書き込まれませんが、必要なものです。どうすればそれを達成できますか?