目前,我的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>
您可以这样定义变量:
<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类的名称。 我知道我可以通过编程实现这一点,可能是使用反射和,但是通过配置? 对我来说,这似乎是一个相当基本的需求,所以我很惊讶我找不到关于它的文档。