文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

springboot logback日志框架怎么配置

2023-06-30 11:55

关注

本篇内容介绍了“springboot logback日志框架怎么配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

logback既可以通过application配置文件进行日志的配置,又可以通过logback-spring.xml进行日志的配置。通常情况下,使用全局配置文件application.yml或properties进行配置就足够了,如果您的日志输出需求特别复杂而且需求比较个性化,可以考虑使用logback-spring.xml的配置方式。

一、application配置文件实现日志配置

我们可以在applicaition.properties(yml) 文件中进行日志的配置

logging:  level:    root: info    com.zimug.boot.launch.controller: debug  file:    path: D:\logs    name: D:\logs\boot-launch.log    max-size: 10MB    max-history: 10  pattern:    console: '%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{10}) - %cyan(%msg%n)'    file: '%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger : %msg%n'

日志格式占位符

配合这张图,看一下占位符和logging.pattern.console格式配置之间的关系

springboot logback日志框架怎么配置

二、使用logback-spring.xml实现日志配置

2.1.需求

一般情况下,使用全局配置文件application.yml或properties进行配置就足够了,如果您的日志输出需求特别复杂,可以考虑使用logback-spring.xml的配置方式。

spring boot 用自带的logback打印日志,多环境打印:

打印Mybatis SQL,只需要把使用到Mybatis的package的日志级别调整为DEBUG,就可以将SQL打印出来。

2.2.需求实现

因为logback是spring boot的默认日志框架,所以不需要引入maven依赖,直接上logback-spring.xml放在resources下面

<?xml version="1.0" encoding="UTF-8"?><configuration>    <!--引入默认的一些设置-->    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>    <!--web信息-->    <logger name="org.springframework.web" level="info"/>    <!--写入日志到控制台的appender,用默认的,但是要去掉charset,否则windows下tomcat下乱码-->    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">        <encoder>            <pattern>${CONSOLE_LOG_PATTERN}</pattern>        </encoder>    </appender>    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->    <property name="LOG_PATH" value="D:/logs/boot-launch"/>    <!--写入日志到文件的appender-->    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!--日志文件输出的文件名,每天一个文件-->            <FileNamePattern>${LOG_PATH}.%d{yyyy-MM-dd}.log</FileNamePattern>            <!--日志文件保留天数-->            <maxHistory>30</maxHistory>        </rollingPolicy>        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>        </encoder>        <!--日志文件最大的大小-->        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">            <MaxFileSize>10MB</MaxFileSize>        </triggeringPolicy>    </appender>    <!--异步写日志到文件-->    <appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">        <discardingThreshold>0</discardingThreshold>        <queueSize>500</queueSize>        <appender-ref ref="FILE"/>    </appender>    <!--生产环境:打印控制台和输出到文件-->    <springProfile name="prod">        <root level="info">            <appender-ref ref="CONSOLE"/>            <appender-ref ref="asyncFileAppender"/>        </root>    </springProfile>    <!--开发环境:打印控制台-->    <springProfile name="dev">        <!-- 打印sql -->        <logger name="com.zimug.boot.launch" level="DEBUG"/>        <root level="DEBUG">            <appender-ref ref="CONSOLE"/>        </root>    </springProfile>    <!--测试环境:打印控制台-->    <springProfile name="test">        <root level="info">            <appender-ref ref="CONSOLE"/>        </root>    </springProfile></configuration>

异步日志配置:

2.3.测试一下

上面配置完成之后,可以使用如下代码测试一下,是否满足了2.1节中提出的需求。

import org.slf4j.Logger;import org.slf4j.LoggerFactory;@RestControllerpublic class LogTestController {    private static final Logger logger = LoggerFactory.getLogger(LogTestController.class);    @GetMapping("/testlog")    public void test(){        logger.trace("Trace 日志...");        logger.debug("Debug 日志...");        logger.info("Info 日志...");        logger.warn("Warn 日志...");        logger.error("Error 日志...");    }}

“springboot logback日志框架怎么配置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯