Is it possible to configure log4j to create a new file with every run of the application?

前端 未结 4 541
逝去的感伤
逝去的感伤 2020-12-10 11:22

For example, the first time I run an application (or immediately after I clear out the /logs directory), I want log4j to write the application\'s logs to a file called log.0

相关标签:
4条回答
  • 2020-12-10 11:58

    See logback's manual on uniquely named files (by timestamp).

    0 讨论(0)
  • 2020-12-10 12:01

    May be this is what you are looking for

    http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/

    **Edit:**I got one more solution! But no idea whether it works or not,but you can try http://www.mail-archive.com/log4cxx-user@logging.apache.org/msg02132.html

    0 讨论(0)
  • 2020-12-10 12:15

    Off the top of my head I don't think this is possible from with Log4j. Maybe when you shut the application down you could rename the .log file so next time you start up a new log file is created.

    0 讨论(0)
  • 2020-12-10 12:18

    Solution with 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>
    

    Note OnStartupTriggeringPolicy and %i in filePattern. This way, Log4j will create new log file with index each time you run App.

    0 讨论(0)
提交回复
热议问题