Springboot日志归档、将指定类日志写到一个文件里

1、日志归档
将下面的配置信息添加到 application.yml文件中

logging:
  config: src/main/resources/config/logback-spring.xml

logback-spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 定义log文件的目录  dedug、warn不用打 但要写在配置文件中-->
    <property name="LOG_HOME" value="${APP_HOME}/../logs"/>
    <!-- 定义服务的名字 -->
    <property name="SERVER_NAME" value="boot"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- %.-1level 只显示信息级别的首字母,%-5level 左对齐显示信息级别全称 -->
            <pattern>[lf-1][${SERVER_NAME}][%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%thread][%file:%line] - %msg%n
            </pattern>
        </encoder>
    </appender>
    <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--输出的文件路径-->
        <file>${LOG_HOME}/trace.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--归档的位置-->
            <fileNamePattern>${LOG_HOME}/${SERVER_NAME}/trace/%d{yyyy-MM-dd}/trace.%i.log.zip</fileNamePattern>
            <!--当文件超过200MB进行归档--->
            <maxFileSize>200MB</maxFileSize>
            <!--最多保留30天-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>[lf-1][${SERVER_NAME}][%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%thread][%file:%line] - %msg%n
            </pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>TRACE</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="BURIED_POINT"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/buried.log</file>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${SERVER_NAME}/buried/%d{yyyy-MM-dd}/buried.log.zip
            </fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>[lf-1][${SERVER_NAME}][%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%thread][%file:%line] - %msg%n
            </pattern>
        </encoder>
    </appender>
    <!--    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
    <!--        <file>${LOG_HOME}/debug.log</file>-->
    <!--        <append>true</append>-->
    <!--        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
    <!--            <fileNamePattern>${LOG_HOME}/${SERVER_NAME}/debug/%d{yyyy-MM-dd}/debug.%i.log.zip</fileNamePattern>-->
    <!--            <maxFileSize>200MB</maxFileSize>-->
    <!--            <maxHistory>30</maxHistory>-->
    <!--        </rollingPolicy>-->
    <!--        <encoder>-->
    <!--            <pattern>[lf-1][${SERVER_NAME}][%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%thread][%file:%line] - %msg%n</pattern>-->
    <!--        </encoder>-->
    <!--        <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
    <!--            <level>DEBUG</level>-->
    <!--            <onMatch>ACCEPT</onMatch>-->
    <!--            <onMismatch>DENY</onMismatch>-->
    <!--        </filter>-->
    <!--    </appender>-->
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/info.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${SERVER_NAME}/info/%d{yyyy-MM-dd}/info.%i.log.zip</fileNamePattern>
            <maxFileSize>200MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>[lf-1][${SERVER_NAME}][%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%thread][%file:%line] - %msg%n
            </pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!--    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
    <!--        <file>${LOG_HOME}/warn.log</file>-->
    <!--        <append>true</append>-->
    <!--        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
    <!--            <fileNamePattern>${LOG_HOME}/${SERVER_NAME}/warn/%d{yyyy-MM-dd}/warn.%i.log.zip</fileNamePattern>-->
    <!--            <maxFileSize>200MB</maxFileSize>-->
    <!--            <maxHistory>30</maxHistory>-->
    <!--        </rollingPolicy>-->
    <!--        <encoder>-->
    <!--            <pattern>[lf-1][${SERVER_NAME}][%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%thread][%file:%line] - %msg%n</pattern>-->
    <!--        </encoder>-->
    <!--        <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
    <!--            <level>WARN</level>-->
    <!--            <onMatch>ACCEPT</onMatch>-->
    <!--            <onMismatch>DENY</onMismatch>-->
    <!--        </filter>-->
    <!--    </appender>-->
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/error.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${SERVER_NAME}/error/%d{yyyy-MM-dd}/error.%i.log.zip</fileNamePattern>
            <maxFileSize>200MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>[lf-1][${SERVER_NAME}][%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%thread][%file:%line] - %msg%n
            </pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="TRACE_FILE"/>
        <!--        <appender-ref ref="BUIRES_POINT"/>-->
        <!--        <appender-ref ref="DEBUG_FILE"/>-->
        <appender-ref ref="INFO_FILE"/>
        <!--        <appender-ref ref="WARN_FILE" />-->
        <appender-ref ref="ERROR_FILE"/>
        <!--<appender-ref ref="ALL_FILE" />-->
    </root>
    <!--特定包/类的日志级别-->
    <logger name="buried" level="info" additivity="false">
        <appender-ref ref="BURIED_POINT"/>
    </logger>
</configuration>

2、将指定类日志写到一个文件里
在logback-spring.xml中添加

<logger name="buried" level="info" additivity="false">
        <appender-ref ref="BURIED_POINT"/>
    </logger>

在你想要输出的类的中添加

private static final Logger logger = LoggerFactory.getLogger("buried");

“buried”要对应的上
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot应用程序中,可以通过配置日志框架将日志输出到文件中。以下是一些常用的日志框架以及如何将日志输出到文件中的配置示例: 1. Logback Logback是Spring Boot默认的日志框架。要将日志输出到文件中,可以在application.properties文件中添加以下配置: ``` logging.file.name=mylog.log ``` 这将在应用程序的根目录下创建一个名为mylog.log的文件,并将所有日志输出到该文件中。 2. Log4j2 要在Log4j2中将日志输出到文件中,可以在application.properties文件中添加以下配置: ``` logging.file.name=mylog.log ``` 这将在应用程序的根目录下创建一个名为mylog.log的文件,并将所有日志输出到该文件中。 3. JUL (java.util.logging) 要在JUL中将日志输出到文件中,可以在application.properties文件中添加以下配置: ``` logging.file.name=mylog.log ``` 这将在应用程序的根目录下创建一个名为mylog.log的文件,并将所有日志输出到该文件中。 注意:以上示例中使用的是logging.file.name属性。如果要使用完整路径而不是在应用程序的根目录下创建日志文件,则可以使用logging.file.path属性。例如: ``` logging.file.path=/var/log/myapp/ logging.file.name=mylog.log ``` 这将在/var/log/myapp/目录下创建一个名为mylog.log的日志文件。 另外,还可以使用logging.pattern.console属性和logging.pattern.file属性来配置日志输出的格式。例如: ``` logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n ``` 这将在控制台和日志文件中以相同的格式输出日志

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值