首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >04_SpringBoot中日志的配置和使用

04_SpringBoot中日志的配置和使用

作者头像
全栈程序员站长
发布2022-07-05 11:43:51
发布2022-07-05 11:43:51
4750
举报

使用Logback作为日志框架:

配置 logback(官方推荐使用)

spring boot 默认会加载 classpath:logback-spring.xml 或者 classpath:logback-spring.groovy。

如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可。

在 src/main/resources 下创建 logback-spring.xml 文件,内容如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?><configuration>    <!-- 默认文件输出格式 -->    <property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />    <!-- test测试环境下日志文件路径 -->    <property name="TEST_FILE_PATH" value="d:/test.log" />    <!-- pro生产环境下日志文件路径 -->    <property name="PRO_FILE_PATH" value="/opt/test/log" />    <!-- 开发环境 -->    <springProfile name="dev">        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">            <encoder>                <pattern>${PATTERN}</pattern>            </encoder>        </appender>        <logger name="com.light.springboot" level="debug" />        <root level="info">            <appender-ref ref="CONSOLE" />        </root>    </springProfile>    <!-- 测试环境 -->    <springProfile name="test">        <!-- 每天产生一个文件 -->        <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">            <!-- 文件路径 -->            <file>${TEST_FILE_PATH}</file>            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">                <!-- 文件名称 -->                <fileNamePattern>${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern>                <!-- 文件最大保存历史数量 -->                <MaxHistory>100</MaxHistory>            </rollingPolicy>            <layout class="ch.qos.logback.classic.PatternLayout">                <pattern>${PATTERN}</pattern>            </layout>        </appender>        <logger name="com.light.springboot" level="debug" />        <root level="info">            <appender-ref ref="TEST-FILE" />        </root>    </springProfile>    <!-- 生产环境 -->    <springProfile name="prod">        <appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">            <file>${PRO_FILE_PATH}</file>            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">                <fileNamePattern>${PRO_FILE_PATH}/warn.%d{yyyy-MM-dd}.log</fileNamePattern>                <MaxHistory>100</MaxHistory>            </rollingPolicy>            <layout class="ch.qos.logback.classic.PatternLayout">                <pattern>${PATTERN}</pattern>            </layout>        </appender>        <root level="warn">            <appender-ref ref="PROD_FILE" />        </root>    </springProfile></configuration>

其中,springProfile 标签的 name 属性对应 application.properties 中的 spring.profiles.active 的配置。

即 spring.profiles.active 的值可以看作是日志配置文件中对应的 springProfile 是否生效的开关。

使用Log4J2作为日志框架:

如果使用log4j2作为日志记录框架,那么首先第一步,需要祛除springboot默认的logback:并加入log4j2的依赖

代码语言:javascript
复制
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
   <!--去除springboot默认的logback的依赖-->  <exclusions>
         <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
         </exclusion>

   </exclusions>
</dependency>
代码语言:javascript
复制
<!--添加log4j2依赖--> <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

log4j2 不能像 logback 那样在一个文件中设置多个运行环境下的日志配置,因此只能命名 3 个不同名称的日志文件,分别在 application-dev,application-test 和 application-prod 中配置 logging.config 选项。

除了在日志配置文件中设置参数之外,还可以在 application-*.properties 中设置,日志相关的配置:

代码语言:javascript
复制
logging.config=classpath:log4j2-spring.xml logging.config # 日志配置文件路径,如 classpath:logback-spring.xml logging.exception-conversion-word # 记录异常时使用的转换词 logging.file # 记录日志的文件名称,如:test.log logging.level.* # 日志映射,如:logging.level.root=WARN,logging.level.org.springframework.web=DEBUG logging.path # 记录日志的文件路径,如:d:/ logging.pattern.console # 向控制台输出的日志格式,只支持默认的 logback 设置。 logging.pattern.file # 向记录日志文件输出的日志格式,只支持默认的 logback 设置。 logging.pattern.level # 用于呈现日志级别的格式,只支持默认的 logback 设置。 logging.register-shutdown-hook # 初始化时为日志系统注册一个关闭钩子

在项目中进行日志记录

运行访问:

运行结果如下:

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/111295.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年8月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Logback作为日志框架:
  • 配置 logback(官方推荐使用)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档