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

Logback是java开发中使用非常广泛的日志框架,介绍的文章也非常多,但是针对于其中一个难点,就是pattern的使用,介绍的文章非常少,仅有的几篇中文介绍也基本都是非常简略的寥寥几句而已,正好最近开发的ELK模块需要用到Logback,就借此机会好好整理一下pattern的用法,希望能给需要的开发者带来些许便利。
因为本文集中介绍pattern的使用,所以我就搭建了一个非常简单的实例环境:
具体结构如下:

其中,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>内容。
下面开始具体的实例讲解:
示例模式如下
<pattern>%m -- %msg -- %message %n </pattern>
输出信息为:

示例模式如下
<pattern>%logger{5} --%logger{35} %m %n </pattern>
输出信息为:

我们分别把length设置成15和35,可以看到设置成35的,所有的类路径名称都显示了,设置为15的只显示了一部分
示例模式如下
<pattern>%class{20} %m %n </pattern>
输出信息为:

示例模式如下
<pattern>%contextName %m %n </pattern>
输出信息为:

示例模式如下
<pattern>%d{yy-MM-dd HH:mm:ss.SSS} %m %n </pattern>
输出信息为:

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