Tomcat で Web アプリを実行しており、次のようにログ記録を構成しました (contextInitialized フックを使用):
Logger rootLogger = Logger.getLogger("");
String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
FileHandler logHandler = new FileHandler(
"myapp_" + date + "_%u.log",
524288000, // 500 MB max size
1, // one log file at a time
true // if it exists: append, don't overwrite
);
Level defaultLevel = Level.INFO;
logHandler.setFormatter(new XMLFormatter());
logHandler.setLevel(defaultLevel);
for (Handler h : rootLogger.getHandlers()) {
rootLogger.removeHandler(h);
}
rootLogger.setLevel(defaultLevel);
rootLogger.addHandler(logHandler);
残念ながら、ログは /var/log の下に作成されません。/var/lib/tomcat6/myapp_2012-08-13_0.log のように /var/lib/tomcat6/ に作成されます。/var/log/myapp/ のように変更したいと思います: /var/log/myapp/myapp_2012-08-13_0.log これを実現するために FileLogger に設定できるものは何もありません。明らかな何かが欠けていますか、それを達成する方法はありますか?