springBoot使用log4j每天生成新的日志文件夹

  1. 删除原有的logging依赖并添加log4j依赖,原有自带依赖不删除干净会导致日志文件写入失败。
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
  2. 添加新的依赖
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
        <version>3.0.1</version>
    </dependency>
  3. 在resource目录下添加配置文件log4j.xml,并在pom.xml文件中指明引用位置
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>*.yml</include>
                    <include>**/*.xml</include>
                    <include>*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

  4. 在application.yml中指明日志的引用文件
    logging:
      discover:
        classpath: log4j2.xml

  5. log4j.xml配置文件内容
    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="fatal">
        <Properties>
            <Property name="baseDir" value="D://log"/>
        </Properties>
    
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <ThresholdFilter level="info" onMatch="ACCEPT"
                                 onMismatch="DENY"/>
                <PatternLayout
                        pattern="[%d{MM:dd HH:mm:ss.SSS}] [%level] [%logger{36}] - %msg%n"/>
            </Console>
            <RollingFile name="debug_appender"
                         	<!--  fileName="${baseDir}/error.log"-->
                         filePattern="${baseDir}/%d{yyyy-MM-dd}/demo%i.log">
    <!--        TimeBasedTriggeringPolicy 会每天生成名字一样的文件覆盖前一天的文件-->
    <!--        不给fileName赋值即可每天生成一份日志并不覆盖之前的日志-->
                <Filters>
                    <ThresholdFilter level="debug"/>
                </Filters>
                <!-- 日志格式 -->
                <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
                <Policies>
                    <!-- 每天转存 -->
                    <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                    <SizeBasedTriggeringPolicy size="10MB"/>
                </Policies>
            </RollingFile>
    
        </Appenders>
        <Loggers>
            <Root level="debug">
                <AppenderRef ref="Console"/>
                <AppenderRef ref="debug_appender"/>
                <AppenderRef ref="info_appender"/>
                <AppenderRef ref="error_appender"/>
            </Root>
    
        </Loggers>
    </Configuration>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用Log4j打印日志的步骤: 1. 在pom.xml文件中添加log4j的依赖,如下: ```xml <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> ``` 2. 在src/main/resources目录下创建log4j.properties文件,配置log4j的相关参数,如下: ```properties # Global logging configuration log4j.rootLogger=INFO, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n # Log file log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=/var/log/myapp.log log4j.appender.file.MaxFileSize=10MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n ``` 上述配置中,rootLogger设置为INFO级别,输出到stdout和log文件中;stdout输出到console,log文件输出到/var/log/myapp.log文件中。 3. 在需要打印日志的类中,使用log4j进行日志打印,如下: ```java import org.apache.log4j.Logger; public class MyService { private static final Logger logger = Logger.getLogger(MyService.class); public void doSomething() { logger.info("something happened"); logger.error("something went wrong"); } } ``` 在上述代码中,使用Logger.getLogger()方法获取Logger对象,然后使用info()和error()方法打印日志。 这就是使用Log4j打印日志的基本步骤,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值