当前位置: 首页 > 知识库问答 >
问题:

使用Logback-test.xml向日志文件添加时间戳

尤飞尘
2023-03-14

目前,我的Spring-boot应用程序日志到一个名为:myLog.log的文件,这是按预期工作,但是我希望日志文件在其末尾有一个时间戳,并在每次运行时创建一个新文件。

我尝试在<code>logback测试中实现这一点。xml文件如下所示,但它只是给出了文件名:myLog。没有时间戳的日志。

我该如何解决这个问题?

日志回测.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    <logger name="org.springframework.web" level="INFO"/>

    <!-- Send debug messages to System.out -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS}  - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>path/to/my/file/mylog.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n</Pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <FileNamePattern>mylog.%i{yyyy-MM-dd_HH:mm:ss.SSS}}.log</FileNamePattern>
            <MinIndex>1</MinIndex>
            <MaxIndex>10</MaxIndex>
        </rollingPolicy>

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>2MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <logger name="com.my.package" level="INFO" additivity="false">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </logger>

    <!-- By default, the level of the root level is set to DEBUG -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

共有1个答案

法池暝
2023-03-14

您可以这样定义变量:

<timestamp key="myTimestamp" datePattern="yyyy-MM-dd'_'HH-mm-ss.SSS"/>

(注意:不要在日期模式中使用冒号)

然后直接在追加器的文件元素中使用它:

 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>path/to/my/file/mylog-${myTimestamp}.log</file>
 ...
 </appender>

或者在一个简单的< code>FileAppender中:

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>path/to/my/file/mylog-${myTimestamp}.log</file>
    <encoder>
        <Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n</Pattern>
    </encoder>
</appender>
 类似资料:
  • 我使用的是logback,日志位置将根据平台的不同而不同(请参见我的另一个相关问题:Java桌面应用程序中日志文件位置的最佳实践是什么?)。 如何告诉logback使用从平台确定的日志文件?我不能在logback.xml中硬编码日志文件,因为每个平台的日志文件都不同。 如何添加具有基于平台的位置的文件追加器。 如何让此文件追加器保留logback.xml中定义的设置。

  • 我使用在文件中配置的logback来管理应用程序的日志。我想: 创建日志文件,这些日志文件在应用程序启动时贴上时间戳,并在应用程序的生命周期内作为单个日志文件保留。(我们可能同时运行一个应用程序的多个实例,或者在一天内运行多个实例,它们可能会运行几天。) 保持干净的日志文件目录,以便删除超过给定期间的日志。 实现第二个建议使用和,如下所示--这将日志文件保存7天。但是,这将使用一个文件来记录给定日

  • 我刚开始使用Mule,我已经安装了Mule Studio3.5.0 for Windows。从Hep安装maven插件时-->安装新软件-->m2eclipse更新站点-http://download.eclipse.org/technolog...我出现了跟踪错误。

  • 问题内容: 好吧,我是linux新手,我在使用简单的bash脚本时遇到了问题。 我有一个程序可以在运行时添加到日志文件中。随着时间的流逝,日志文件变得越来越大。我想创建一个启动脚本,该脚本将在每次运行之前重命名并移动日志文件,从而为程序的每次运行有效地创建单独的日志文件。到目前为止,这是我得到的: 糊盒 运行时,我看到以下内容: 当我CD到logs目录并运行dir时,我看到以下内容: 这是怎么回事

  • 我一直在找,但还是想不出来。我需要为日志输出添加一个自定义日志模式。通过resources目录中的logback.xml文件,我可以非常轻松地完成此操作,而且它完全按照我所希望的方式工作。 但是,如果可能的话,我希望能够在整个application.yml文件中这样做。主要是因为我想把它外化在一个地方。

  • 我有几个可执行类,我想自动将日志文件名设置为正在执行的Java类的名称。 我知道我可以通过编程实现这一点,可能是使用反射和,但是通过配置? 对我来说,这似乎是一个相当基本的需求,所以我很惊讶我找不到关于它的文档。