有趣生活

当前位置:首页>科技>logger 在代码中如何初始化Logback配置文件中pattern详细解释及实例

logger 在代码中如何初始化Logback配置文件中pattern详细解释及实例

发布时间:2026-07-25阅读(1)

导读Logback是java开发中使用非常广泛的日志框架,介绍的文章也非常多,但是针对于其中一个难点,就是pattern的使用,介绍的文章非常少,仅有的几篇中文....

Logback是java开发中使用非常广泛的日志框架,介绍的文章也非常多,但是针对于其中一个难点,就是pattern的使用,介绍的文章非常少,仅有的几篇中文介绍也基本都是非常简略的寥寥几句而已,正好最近开发的ELK模块需要用到Logback,就借此机会好好整理一下pattern的用法,希望能给需要的开发者带来些许便利。

因为本文集中介绍pattern的使用,所以我就搭建了一个非常简单的实例环境:

  1. 使用springboot项目,只选中web模块。
  2. 只创建一个最简单的Test类。
  3. 只添加一个logback.xml配置文件。

具体结构如下:

其中,demoApplication和Test的代码分别为:

DemoApplication代码:

package com.example.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); Test.divideByZero(); }}

Test代码为(只有一个除以零的方法):

package com.example.demo;import org.slf4j.LoggerFactory;public class Test { public static void divideByZero() { try { int i = 10 / 0; } catch (Exception err) { LoggerFactory.getLogger(Test.class).error(err.getLocalizedmessage()); } }}

logback.xml配置信息如下:

<?xml version="1.0" encoding="UTF-8"?><configuration debug="false" scan="true" scanPeriod="30 seconds"> <contextName>logbacktest</contextName> <appender name="STDOUT" > <encoder> <pattern>%msg %n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="STDOUT" /> </root></configuration>

我们提供了非常简化的配置文件,在这个配置文件里,把级别为info以上的信息全部在控制台输出,为了测试方便,除了<pattern>部分以外,我们保持所有其他配置不变,每次只更改<pattern>内容。

下面开始具体的实例讲解:

  • n 换行符,不单独举例了
  • m / msg / message,输出和事件关联的消息,这三个关键字m、msg、message表示的意义完全一样,在实际模式中使用哪一个都可以.

示例模式如下

<pattern>%m -- %msg -- %message %n </pattern>

输出信息为:

  • c{length} /lo{length} /logger{length} 产生日志事件的logger的名称,length为长度,如果长度不够,就先保留名称最右面的部分,

示例模式如下

<pattern>%logger{5} --%logger{35} %m %n </pattern>

输出信息为:

我们分别把length设置成15和35,可以看到设置成35的,所有的类路径名称都显示了,设置为15的只显示了一部分

  • C{length} /class{length} 产生日志事件调用者的类名,length的用法和上面的类似

示例模式如下

<pattern>%class{20} %m %n </pattern>

输出信息为:

  • contextName/cn 日志上下文名称,<contextName>部分设置的名称

示例模式如下

<pattern>%contextName %m %n </pattern>

输出信息为:

  • d{pattern} /date{pattern} /d{pattern, timezone} /date{pattern, timezone} 日志事件时间,可以设置显示的时间格式

示例模式如下

<pattern>%d{yy-MM-dd HH:mm:ss.SSS} %m %n </pattern>

输出信息为:

未完待续

TAGS标签:  logger  代码  如何  初始化  Logback  logger 在代码

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图