当前位置: 首页 > 面试题库 >

在Log4j中带有日期的文件名

黎曾笑
2023-03-14
问题内容

我正在尝试将当前日期附加到log4j日志文件中。所以会是这样的:

myApp-2011-01-07.log

事实是,我不想使用DailyRollingFileAppender。原因是每天将运行另一个脚本,该脚本将备份logs文件夹中的所有内容。它在Tomcat5.5下运行。

在log4j中可以吗?


问题答案:

我认为您可以在代码中设置系统属性以包含当前日期:

static{
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    System.setProperty("current.date", dateFormat.format(new Date()));
}

然后,在log4j.xml文件中,当在追加程序中指定日志文件名时,可以使用system属性:

<appender name="MYAPPENDER" class="org.apache.log4j.FileAppender">
    <param name="File" value="${user.home}/myApp-${current.date}.log" />

预计到达时间:现在,考虑到您可能必须使用静态初始化程序来设置系统属性,以确保在配置log4j之前已设置该属性。



 类似资料:
  • 问题内容: 这个问题的一个子集此。我希望每天使用以下日志文​​件名格式创建一个日志文件: 使用,但根本不创建日志文件。 我的lo4j.xml看起来像这样: 问题答案: 直到午夜后的某个时间记录了第一条消息后,使用log4j附带的发货才重命名日志文件。 您可以尝试使用,可以从此处下载。与相反,它将创建日志文件,其文件名始终包含今天的日期。

  • 我有一个问题,log4j没有登录到我的一个文件,我不知道为什么。我有一些运行脚本的代码,脚本可以添加日志记录,日志记录到使用log4j的文件中,我正在尝试创建一个只记录特定脚本的appender。 上面的appender可以工作,我在日志文件中得到了它 当脚本记录某些内容时,它会以这将使用my log4j中的上述配置显示在日志中。属性文件。 如果我将上述内容更改为: 文件中未记录任何内容。我本以为

  • 虽然我进入实现从相当长的时间,但新的发展。

  • 问题内容: 我想将log4j和log4net附加程序的日志文件名设置为具有当前日期。我们正在做每日翻转,但是当前的日志文件没有日期。日志文件名称格式为 有人知道我最好的方法吗? 编辑:我忘了提到我们也想在log4net中做到这一点。另外,任何解决方案都需要在JBoss中可用。 问题答案: DailyRollingFileAppender正是你要搜索的内容。

  • 我希望在翻转后,旧日志文件的文件名中有创建日期。当前日志文件名中的日期不等于文件的创建日期。举个例子:如果一个日志文件是昨天创建的,更新到今天,现在已经翻转,那么昨天的日期应该在旧的日志文件名中可见。 启动后的日志切换在代码中如下所示 这类似于onStartupTriggeringPolicy 文件creationTime问题的以下bug(但未修复),适用于RollingFileAppender,

  • 问题内容: 我们有几个同时运行的作业,它们必须为log4j使用相同的配置信息。他们都使用相同的附加程序将日志转储到一个文件中。有没有一种方法可以让每个作业动态命名其日志文件,以使它们保持独立? 谢谢 汤姆 问题答案: 您可以为每个作业传递Java系统属性吗?如果是这样,您可以像这样进行参数化: 然后在您的log4j.properties中: 您可以使用主机环境(例如)中的值填充Java系统属性,该