千家信息网

怎么通过logback实现springboot超级详细的日志配置

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章将为大家详细讲解有关怎么通过logback实现springboot超级详细的日志配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言java
千家信息网最后更新 2025年01月24日怎么通过logback实现springboot超级详细的日志配置

这篇文章将为大家详细讲解有关怎么通过logback实现springboot超级详细的日志配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

前言

java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj4f 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日志框架就能够用 slj4f 调用)。其中性能最高的应该使 logback 了,而且 springboot 默认使用的也是 logback 日志,所以本篇将会详细的讲解 logback 的日志配置方案。

主要内容如下:

•logback 配置文件的构成•如何将日志输出到文件•如何按时间,按大小切分日志•如何将让一个日志文件中只有一种日志级别•如何将指定包下的日志输出到指定的日志文件中

简单使用

如果无需复杂的日志配置,执行简单设置日志打印级别,打印方式可直接再 application.yml 中配置。

默认情况下 Spring Boot 将 info 级别的日志输出到控制台中,不会写到日志文件,且不能进行复杂配置。

打印到文件中

想要将日志输出到文件中,可通过如下两个配置:

logging: # 配置输出额日志文件名,可以带路径 # file: out.log # 配置日志存放路径,日志文件名为:spring.log path: ./log file: # 设置日志文件大小 max-size: 10MB

注意:file 和 path 是不能同时配置的,如果同时配置path不会生效。

打印级别控制

可通过配置控制日志打印级别,格式如下:

logging.level.*=TRACE/DEBUG/INFO/...*可以为包名或 Logger 名,如下:logging: level: # root日志以WARN级别输出 root: info # 此包下所有class以DEBUG级别输出 com.example.log_demo.log1: warn

logback 详细配置

接下来说明如何通过独立的 xml 配置文件来配置日志打印。虽然 springboot 是要消灭 xml 的,但是有些复杂功能还是得编写 xml。使用 xml 后要将 application.yml 中的配置去掉,避免冲突.

根据不同的日志系统,按照指定的规则组织配置文件名,并放在 resources 目录下,就能自动被 spring boot 加载:

•Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy•Log4j: log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml•Log4j2: log4j2-spring.xml, log4j2.xml•JDK (Java Util Logging): logging.properties

想要自定义文件名的可配置:logging.config指定配置文件名:

logging.config=classpath:logging-config.xml

Spring Boot 官方推荐优先使用带有 -spring 的文件名作为你的日志配置(如使用 logback-spring.xml ,而不是 logback.xml ),命名为 logback-spring.xml 的日志配置文件, spring boot 可以为它添加一些 spring boot 特有的配置项(下面会提到)。

logback 配置文件的组成

根节点有 5 个子节点,下面来进行一一介绍。

节点

root 节点是必选节点,用来指定最基础的日志输出级别,只有一个 level 属性,用于设置打印级别,可选如下:TRACE,DEBUG,INFO,WARN,ERROR,ALL,OFF。

root 节点可以包含 0 个或多个元素,将appender添加进来。如下:

appender 也是子节点之一,将会在后面说明。

节点

设置上下文名称,默认为default,可通过%contextName来打印上下文名称,一般不使用此属性。

节点

用于定义变量,方便使用。有两个属性:name,value。定义变量后,可以使用${}来使用变量。如下:

节点

appender 用来格式化日志输出的节点,这个最重要。有两个属性:

•name:该本 appender 命名•class:指定输出策略,通常有两种:控制台输出,文件输出

下面通过例子来说明这个怎么用:

1.输出到控制台/按时间输出日志

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${LOG_HOME}/timeFile/out.log ${LOG_HOME}/timeFile/info.%d{yyyy-MM-dd}.%i.log.gz 30 10MB %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8

1.设置只输出单个级别

在 appender 中设置,filter 子节点,在默认级别上再此过滤,配置 onMatch,onMismatch 可实现只输出单个级别

INFO ACCEPT DENY

节点

构成

此节点用来设置一个包或具体的某一个类的日志打印级别、以及指定,有以下三个属性:

•name: 必须。用来指定受此 loger 约束的某个包或者某个具体的类•level:可选。设置打印级别。默认为 root 的级别。•addtivity: 可选。是否向上级 loger(也就是 root 节点)传递打印信息。默认为 true。

使用示例如下:

1.不指定级别,不指定 appender

2.指定级别,不指定 appender

3.指定级别,指定 appender

通过指定 appender 就能将指定的包下的日志打印到指定的文件中。

多环境日志输出

通过设置文件名为-spring 结尾,可分环境配置 logger,示例如下:

通过配置spring.profiles.active也能做到切换上面的 logger 打印设置

日志打印可以很复杂, 这里只是说明了常用的 logback 配置。

关于怎么通过logback实现springboot超级详细的日志配置就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

日志 配置 文件 级别 输出 节点 文件名 属性 控制 复杂 两个 内容 变量 控制台 框架 可通 上下 上下文 单个 只有 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库引用是什么 赣州宜家软件开发有限公司 翟银亮南京锦溪网络技术有限公司 工作室的电脑服务器 网络安全领导小组网信委 菏泽公安局网络安全大队电话 回复qq好友一直显示服务器繁忙 Cnc台达服务器 数据库中的数据长度指什么 方舟生存进化专用服务器的配置 江苏网络时钟同步服务器ip 北京标准网络技术服务口碑推荐 数据库管理员岗位能力要求 神奇宝贝服务器xia 网络安全元素里面最脆弱 轻量应用服务器为怎么云免 深圳市集思软件开发怎么样 小学观看网络安全视频心得体会 河南省网络安全调查报告 专网网络安全 我的世界基岩服务器怎么用 重庆承明网络技术 数据库中存不了汉字 如何写好一份软件开发设计文档 矿山数据库建立 微商网络技术 浙江统一软件开发标准 如何备份 数据库空表结构 数据库能不能放图像 用户授权数据存入云数据库
0