我目前在我的应用程序中使用Spring Boot
,我知道它使用Logback
作为其默认日志记录实现。
目前在我的applications.properties
文件中,我有以下内容:
#some other properties
#logging details
logging.path= path/to/my/log/folder
这当前记录到我的输出文件夹中的文件:spring.log
。
如何更改此文件,使其包含创建时的时间戳和日期?
例如 - “my-application-log-DATE-TIME.log”
答案 0 :(得分:0)
在appender中,尝试添加:
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern> </layout>
答案 1 :(得分:0)
删除.properties文件样式配置并使用logback正确的一个 - logback.xml。 Spring Boot已为此做好充分准备!这是一个例子:
<property name="logPattern" value="%d %-5level %logger{35} - %msg%n"/>
<property name="logEncoding" value="UTF-8"/>
<property name="logDirectory" value="logs"/>
<appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logDirectory}/myapplication.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logDirectory}/myapplication_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>30MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<charset>${logEncoding}</charset>
<pattern>${logPattern}</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="warn"/>
<root level="INFO">
<appender-ref ref="fileAppender"/>
</root>
这不仅可以为日志文件添加时间戳,还可以帮助您进行日志轮换(例如,它会保留旧日志,直到达到一定的大小等)。
答案 2 :(得分:0)
你是以正确的方式去做的。使用Spring引导的property support来自定义application.properties文件。
// application.properties file
app.name=appname
logging.path=logpath
logging.file=${appname}-{timestamp}.log
另一方面,在您的支持类中,您可以创建一个url帮助器来获取属性值:
/**
* Helper class to get configured urls.
*/
@Component
public class UrlHelper {
@Inject
private Environment env;
private static final String LOGGING_TIMESTAMP = "{timestamp}";
private static String loggingFileUrlPattern;
/**
* Initializes properties.
*/
@PostConstruct
public void initProperties() {
loggingFileUrlPattern = env.getRequiredProperty("logging.file");
}
/**
* Formats the loggin Url pattern application property with the current
* timestamp
*
* @param timestamp
* current timestamp.
* @return The complete logging file url.
*/
public static String buildLoggingFileUrl(String timestamp) {
return loggingFileUrlPattern.replace(LOGGING_FILE_URL, timestamp);
}
}
希望它有所帮助!