java springBoot总结-日志管理

时间:2025-08-27 13:12:02来源:互联网

下面小编就为大家分享一篇java springBoot总结-日志管理,具有很好的参考价值,希望对大家有所帮助。

默认日志框架

Spring Boot自带spring-boot-starter-logging库实现系统日志功能,spring-boot-starter-logging组件默认使用LogBack日志记录工具。

默认是INFO级别输出到控制台。

SpringBoot默认使用Logback组件作为日志管理。

在SpringBoot中,Logback默认配置文件是/resources/logback.xml和/resources/logback-test.xml

 

示例

在/resources下添加Logback配置文件logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
        <configuration>
        <!--定义日志文件的存储地址-->
        <property name="LOG_HOME" value="${catalina.base}/logs/"/>

        <!-- 控制台输出 -->
        <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
            <!-- 日志输出编码 -->
            <layout class="ch.qos.logback.classic.PatternLayout">
                <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
                <pattern>%d{MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
                </pattern>
            </layout>
        </appender>

        <!-- 按照每天生成日志文件 -->
        <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--日志文件输出的文件名-->
                <FileNamePattern>${LOG_HOME}/server.%d{yy99-MM-dd}.log</FileNamePattern>
                <MaxHistory>30</MaxHistory>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <!--格式化输出:%d表示时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
                </pattern>
            </layout>
            <!--日志文件最大的大小-->
            <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <MaxFileSize>10MB</MaxFileSize>
            </triggeringPolicy>
        </appender>

        <!-- 日志输出级别 -->
        <root level="info">
            <appender-ref ref="Stdout"/>
            <appender-ref ref="RollingFile"/>
        </root>
    </configuration>

在application.properties或application.yml中可以修改配置

#日志级别配置
logging.level.root=INFO
logging.level.com.xgss.com=WARN
#日志格式配置
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n 
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
# 日志输出路径,默认会在设置的 path 生成一个spring.log 文件。
# logging.path= E:\log
# 设置文件,可以是绝对路径,也可以是相对路径。优先级比logging.path高
# logging.file=my.log

修改日志框架

排除默认的日志框架依赖


<!-- 排除默认的Logback依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

添加新的日志框架依赖

<!-- 引入Log4j2依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

配置日志框架

对于 Log4j2,你通常需要创建一个 log4j2.xml 文件放在 src/main/resources 目录下。

<!-- log4j2.xml 示例配置 -->
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

指定日志配置文件

如果你的日志配置文件名称不是默认的(例如,对于 Log4j2 默认是 log4j2-spring.xml),你需要在 application.properties 或 application.yml 中指定日志配置文件的位置:

# application.properties
logging.config=classpath:log4j2.xml

 

本站部分内容转载自互联网,如果有网站内容侵犯了您的权益,可直接联系我们删除,感谢支持!