spring boot 简单两步把日志写入文件

环境:

开发工具:IntelliJ IDEA 2022.3.3

JAVA:jdk1.8

SpringBoot:2.6.13

步骤:

创建一个springboot项目或者随便找一个现成的springboot项目也行,日志写入文件只需要2个步骤。

第一:新建一个配置文件:LogDirConfig.java

package com.sky.demo1.config;

import ch.qos.logback.core.PropertyDefinerBase;
import org.springframework.boot.system.ApplicationHome;
import org.springframework.stereotype.Component;

import java.io.File;

/**
 * 日志配置
 */
@Component
public class LogDirConfig extends PropertyDefinerBase {

    /**
     * 日志存放位置
     */
    private String LOG_HOME;
    /**
     * 获取jar包的位置
     * 更新logback.xml文件LOG_HOME的包路径
     *
     * @return 1
     */
    @Override
    public String getPropertyValue() {
        ApplicationHome h = new ApplicationHome(getClass());
        File jarF = h.getSource();
        this.LOG_HOME = jarF.getParentFile().toString();
        System.out.println(LOG_HOME);
        return this.LOG_HOME;
    }
}


第二:新建一个logback.xml,必须放在resources下面。其中一定要注意修改LogDirConfig.java的路径:com.sky.demo1.config.LogDirConfig。

<?xml version="1.0" encoding="UTF-8"?>

<configuration debug="false" scan="false" scanPeriod="60 seconds">
    <!-- 日志文件主目录,也就是日志配置文件的路径 这里记得替换 -->
    <define name="LOG_HOME" class="com.sky.demo1.config.LogDirConfig"/>
    <!-- 默认配置 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <!-- 配置控制台(Console) -->
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
    <!-- 配置日志文件(File) -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 设置策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件路径:这里%d{yyyyMMdd}表示按天分类日志 -->
            <FileNamePattern>${LOG_HOME}/log/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}_%i.log</FileNamePattern>
            <!-- 启用日志清理 -->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <!-- 日志保留天数 -->
            <maxHistory>30</maxHistory>
            <!-- 日志文件最大的大小 -->
            <maxFileSize>30720KB</maxFileSize>
        </rollingPolicy>
        <!-- 设置格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!-- 格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <!-- 或者使用默认配置 -->
            <!-- <pattern>${FILE_LOG_PATTERN}</pattern> -->
            <charset>utf8</charset>
        </encoder>
    </appender>

    <appender name="ERRROLLLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 设置策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件路径:这里%d{yyyyMMdd}表示按天分类日志 -->
            <FileNamePattern>${LOG_HOME}/log/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}_error_%i.log</FileNamePattern>
            <!-- 启用日志清理 -->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <!-- 日志保留天数 -->
            <maxHistory>30</maxHistory>
            <!-- 日志文件最大的大小 -->
            <maxFileSize>30720KB</maxFileSize>
        </rollingPolicy>
        <!-- 设置格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!-- 格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <!-- 或者使用默认配置 -->
            <!-- <pattern>${FILE_LOG_PATTERN}</pattern> -->
            <charset>utf8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <appender name="WARNROLLLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 设置策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件路径:这里%d{yyyyMMdd}表示按天分类日志 -->
            <FileNamePattern>${LOG_HOME}/log/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}_warn_%i.log</FileNamePattern>
            <!-- 启用日志清理 -->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <!-- 日志保留天数 -->
            <maxHistory>30</maxHistory>
            <!-- 日志文件最大的大小 -->
            <maxFileSize>30720KB</maxFileSize>
        </rollingPolicy>
        <!-- 设置格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!-- 格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <!-- 或者使用默认配置 -->
            <!-- <pattern>${FILE_LOG_PATTERN}</pattern> -->
            <charset>utf8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- root节点 全局日志级别,用来指定最基础的日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="FILE"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="WARNROLLLOG"/>
        <appender-ref ref="ERRROLLLOG"/>
    </root>
</configuration>

最后运行springboot项目即可生成对应的日志文件。这里是生成才和jar包同等目录下。这里是用idea运行的,也就是target目录下,附图:

如果有什么问题,欢迎大佬指正。

 最后如果对你有一点点帮助,麻烦支持一下。

全国寄快递5元起,电影票8.8折。更多优惠微信关注公众号:【折价寄件】

感谢阅读!!!!

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值