Имя файла с датой в Log4j
Я пытаюсь добавить текущую дату в файл журнала log4j. Так что было бы что-то вроде этого:
myApp-2011-01-07 - ... log
дело в том, что я не хочу использовать DailyRollingFileAppender. Причина в том, что будет другой скрипт, который работает ежедневно, который будет создавать резервные копии всего в папке журналов. Это работает под Tomcat5.5.
возможно ли это в log4j?
3 ответов
Я думаю, вы могли бы просто установить системное свойство в коде, чтобы содержать текущую дату:
static{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.setProperty("current.date", dateFormat.format(new Date()));
}
тогда в вашем log4j.xml файл вы можете использовать системное свойство при указании имени файла журнала в приложении:
<appender name="MYAPPENDER" class="org.apache.log4j.FileAppender">
<param name="File" value="${user.home}/myApp-${current.date}.log" />
ETA: теперь, когда я думаю об этом, вам, возможно, придется настроить системное свойство с помощью статического инициализатора, чтобы убедиться, что свойство установлено до настройки log4j.
вы можете быстро управлять этим и высоко mantainable, просто создавая свой собственный приемщика.
просто создайте такой класс:
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.log4j.FileAppender;
public class CustomFileAppender extends FileAppender{
@Override
public void setFile(String fileName)
{
if (fileName.indexOf("%timestamp") >= 0) {
Date d = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSS");
fileName = fileName.replaceAll("%timestamp", format.format(d));
}
super.setFile(fileName);
}
}
и поместите это в свои свойства:
log4j.appender.file=com.portima.filenet.brio.ops.tools.CustomFileAppender
log4j.appender.file.File=${log}/general.%timestamp.log
теперь вы можете дать любой тип имени файла, который вы хотите.
попробуйте установить это в ваш :
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=example.log
гораздо больше информации можно найти здесь http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/DailyRollingFileAppender.html