简体   繁体   English

如何在 SpringBoot application.yml 中配置 log4j 滚动文件附加程序

[英]how to configure log4j rolling file appender in SpringBoot application.yml

I'm working on spring boot application.我正在开发 spring 启动应用程序。 For logging I'm trying to use log4j.对于日志记录,我正在尝试使用 log4j。 Can anyone help me to configure the RollingFileAppender in application.yml谁能帮我在 application.yml 中配置 RollingFileAppender

I have following log4j dependencies:我有以下 log4j 依赖项:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.7</version>
</dependency>

<dependency>
    <groupId>log4j</groupId>
    <artifactId>apache-log4j-extras</artifactId>
    <version>1.2.17</version>
</dependency>

Currently I'm try with following code:目前我正在尝试使用以下代码:

log4j.appender.File: org.apache.log4j.rolling.RollingFileAppender
log4j.appender.File.file: ${basedir}/logs
log4j.appender.File.rollingPolicy: org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.File.rollingPolicy.FileNamePattern: %d{ddMMyyyy}.log

I want to store the log file in the project itself and the file pattern should DD-MM-YYYY.log.我想将日志文件存储在项目本身中,文件模式应为 DD-MM-YYYY.log。 And also in my function, I'm printing my log as follows:而且在我的 function 中,我正在打印我的日志,如下所示:

private static Logger logger = LoggerFactory.getLogger(LoggingFile.class);
logger.info("Printing logs in file");

I can able to see this in console, but the file is not creating.我可以在控制台中看到这个,但文件没有创建。 Please help!请帮忙!

Thanks in advance!提前致谢!

I think LogBack is a better choice, the following is the relevant configuration我觉得LogBack是更好的选择,下面是相关配置

<configuration scan="true" scanPeriod="5 seconds">
<contextName>heron</contextName>
<property name="appName" value="adminLte"/>
<property name="logPath" value="/tmp/logs"/>

<!--控制台日志-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{16} - %msg%n</pattern>
    </encoder>
</appender>

<!--基于时间和文件尺寸的轮转-->
<appender name="rollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logPath}/${appName}/${appName}.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>${logPath}/${appName}/%d{yyyy-MM-dd}/${appName}-%i.log</fileNamePattern>
        <maxFileSize>10MB</maxFileSize>
        <maxHistory>15</maxHistory>
        <totalSizeCap>5GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{16} - %msg%n</pattern>
    </encoder>
</appender>

<logger name="website.lhc" level="debug" additivity="false">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="rollingFileAppender"/>
</logger>


<logger name="org.springframework.security" level="debug" additivity="false">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="rollingFileAppender"/>
</logger>


<root level="info">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="rollingFileAppender"/>
</root>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM