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

环境:

开发工具:IntelliJ IDEA 2022.3.3

JAVA:jdk1.8

SpringBoot:2.6.13

步骤:

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

新建一个logback.xml,必须放在resources下面。其中一定要注意LOG_HOME,这个目录就是日志存放目录。

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

<configuration debug="false" scan="false" scanPeriod="60 seconds">
    <!-- 日志文件主目录, -->
    <property name="LOG_HOME" value="./logs"/>
    <!-- 默认配置 -->
    <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元

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

抵扣说明:

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

余额充值