前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【二十九】springboot整合logback实现日志管理

【二十九】springboot整合logback实现日志管理

作者头像
小z666
发布2024-06-21 17:37:23
1000
发布2024-06-21 17:37:23
举报
文章被收录于专栏:javajava

三、实例演示

1、新建一个xml文件

2、增加configuration标签

3、由于需要控制是否需要向日志文件输入就需要新增一个变量来控制一下,通过springProperty标签实现

4、通过property标签新增几个常量来统一一下文件配置的一些值

5、通过appender标签实现日志的处理规则

6、新增logger便签,配置成项目本身的日志通过变量来控制是否输入到日志文件,而springfox.documentation这个包只输出到控制台

7、再配置root标签

8、验证


本章节是记录logback在springboot项目中的简单使用,本文将会演示如何通过logback将日志记录到日志文件或输出到控制台等管理操作。将会从以下几个方面进行讲解。最后实现将特定级别的特定日志保存到日志文件。

一、依赖
代码语言:javascript
复制
<dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.10</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.janino</groupId>
            <artifactId>janino</artifactId>
            <version>3.0.6</version>
        </dependency>

以上版本只是测试时使用,实际版本根据项目来。

二、标签介绍
1、configuration

logback配置文件的根标签

属性:

代码语言:javascript
复制
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒,当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false
2、springProperty

我理解的是配置常量值的数据来源和默认值

属性:

代码语言:javascript
复制
scope:作用域
name:变量名称
source:数据来源
defaultValue:默认值
3、property

定义常量和给常量赋值

属性:

代码语言:javascript
复制
name:常量名称
value:常量值
4、appender

日志的具体格式或者保存地址等配置处理

属性:

代码语言:javascript
复制
name:appender的名字
class:类型,有ConsoleAppender、RollingFileAppender、AsyncAppender、FileAppender。ConsoleAppender:控制台日志。
RollingFileAppender:滚动文件日志,继承于FileAppender,使用更便捷。
AsyncAppender:异步日志,相较于其他的,他不负责处理日志,只是将日志缓冲到一个BlockingQueue里面去,并在内部创建一个工作线程从队列头部获取日志,之后将获取的日志循环记录到附加的其他 appender上去,从而达到不阻塞主线程的效果。因此AsynAppender仅仅充当事件转发器,必须引用另一个appender来做事。
FileAppender:文件日志,我们不做演示,就用RollingFileAppender演示,功能差不多。
5、logger

单独对某种日志做处理

6、root

统一的所有日志的处理(除了logger处理的)

三、实例演示

加入现在我有这样一个需求:1、项目本身的日志我想记录下来保存文件并打印控制台;2、springfox.documentation这个包下面关于swagger的日志我觉得没有用处并不想存入文件只打印控制台就可以了;3、其他的第三方包该输出什么日志就都保存文件并打印控制台不做干涉;4、我还想做一个配置可以控制向日志文件输出的开关。

有了这个需求,我们就可以开始做了。

1、新建一个xml文件

留下如上内容。

2、增加configuration标签
代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false">

</configuration>
3、由于需要控制是否需要向日志文件输入就需要新增一个变量来控制一下,通过springProperty标签实现

我们后面需要指定一个文件存日志,文件名就叫项目名,所以再增加一个项目名变量,同样通过springProperty标签实现。

4、通过property标签新增几个常量来统一一下文件配置的一些值

5、通过appender标签实现日志的处理规则

新增三个类型的appender,class如上固定路径。设置编码格式和输出格式等。异步日志appender绑定到name为rolling的滚动日志即为实际是走name为rolling的appender逻辑,只是先到async缓冲一下。

6、新增logger便签,配置成项目本身的日志通过变量来控制是否输入到日志文件,而springfox.documentation这个包只输出到控制台

7、再配置root标签

没有特别定义则默认为root,任何一个类只会和一个logger对应。

8、验证

随便增加一个项目本身的日志输出,启动项目。

可以看到多了一个日志文件。

可以看到特殊处理的包日志文件没有,而控制台存在。

而项目本身的日志确实是都存在。手动清空日志文件,并将配置改为关闭,重启项目。

可以看到确实没有向日志文件输出了,控制台的日志也明显较少,只有项目本身的日志和springfox.documentation的日志了。

logback的笔记到此结束,欢迎交流。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、依赖
  • 二、标签介绍
    • 1、configuration
      • 2、springProperty
        • 3、property
          • 4、appender
            • 5、logger
              • 6、root
              • 三、实例演示
                • 1、新建一个xml文件
                  • 2、增加configuration标签
                    • 3、由于需要控制是否需要向日志文件输入就需要新增一个变量来控制一下,通过springProperty标签实现
                      • 4、通过property标签新增几个常量来统一一下文件配置的一些值
                        • 5、通过appender标签实现日志的处理规则
                          • 6、新增logger便签,配置成项目本身的日志通过变量来控制是否输入到日志文件,而springfox.documentation这个包只输出到控制台
                            • 7、再配置root标签
                              • 8、验证
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档