log4j の場所を ${catalina.base}/logs/mylog/logdate.log に定義したい
しかし、私は実行時にそれをしたい
これは、実行時に fileappender を定義するための私のコードです。これをオフラインで実行すると、プロジェクトに新しいフォルダーが作成され、すべてのログがそこに移動します。これは素晴らしいことですが、サーバーでプロジェクトを実行すると、ログ.......
localhost で実行時にログの場所を定義するにはどうすればよいですか?
String targetLog = "${catalina.base}/logs/ElectronicArena/ea.log";
ConsoleAppender console = new ConsoleAppender(); // create appender
// configure the appender
String PATTERN = "%d %-5p [%c{1}] %m%n";
console.setLayout(new PatternLayout(PATTERN));
console.setThreshold(Level.INFO);
console.activateOptions();
// add appender to any Logger (here is root)
Logger.getRootLogger().addAppender(console);
FileAppender appender = null;
try {
appender = new FileAppender(new PatternLayout(
"%d %-5p [%c{1}] %m%n"), targetLog, true);
appender.setName(TAG);
appender.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
appender.setFile(targetLog);
appender.setAppend(true);
appender.setThreshold(Level.INFO);
appender.activateOptions();
Logger.getRootLogger().addAppender(appender);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
何らかの理由で編集 が宣言的に機能しない:これは私のプロパティファイルです
log4j.rootLogger=INFO, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d %5p [%t](%c:%L) - %m%n
log4j.rootLogger=DEBUG, Log
log4j.appender.Log=org.apache.log4j.FileAppender
log4j.appender.Log.layout=org.apache.log4j.PatternLayout
log4j.appender.Log = org.apache.log4j.DailyRollingFileAppender
log4j.additivity = false
log4j.appender.Log.File=${catalina.base}/logs/ElectronicArena/ea.log
log4j.appender.Log.MaxFileSize = 5MB
log4j.appender.Log.MaxBackupIndex = 20
# Pattern to output the caller's file name and line number.
log4j.appender.Log.layout.ConversionPattern=%d %5p [%t](%c:%L) - %m%n