代码之家  ›  专栏  ›  技术社区  ›  Thomas Owens

是否可以配置log4j在每次运行应用程序时创建一个新文件?

  •  16
  • Thomas Owens  · 技术社区  · 15 年前

    例如,第一次运行应用程序时(或者在清除/log s目录之后),我希望log4j将应用程序的日志写入名为log.0的文件。然后,我退出应用程序并重新启动它,我希望将日志写入日志。1。等等。

    我想把它保存在配置文件中,尽管如果我不能,我想在设置log4j时,我可以在我的应用程序中一直这样做。

    这有可能吗?如果是,如何?

    4 回复  |  直到 9 年前
        1
  •  15
  •   Umesh    15 年前
        2
  •  4
  •   Nazar Ostryzhniuk    9 年前

    使用log4j2的解决方案:

            <RollingFile name="RollingFile" fileName="${log-path}/GScraper.log"
                     filePattern="${log-path}/GScraper_%d{yyyy-MM-dd}_%i.log">
            <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>%level\t%d{yyyy-MM-dd HH:mm:ss} %c: %m%n</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="32 MB" />
                <OnStartupTriggeringPolicy/>
            </Policies>
        </RollingFile>
    

    注释 启动策略 %i 在里面 文件目录 . 这样,log4j将在每次运行应用程序时创建带有索引的新日志文件。

        3
  •  1
  •   Ceki    12 年前

    参见Logback的手册 uniquely named files (by timestamp) .

        4
  •  0
  •   Karl    15 年前

    我觉得用log4j是不可能的。也许当你关闭应用程序时,你可以重命名.log文件,这样下次你启动一个新的日志文件时就会被创建。