From 080746df22f0289ba5d7c053477465deb192c44c Mon Sep 17 00:00:00 2001 From: asahi Date: Mon, 5 Aug 2024 12:53:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AElogback=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spring/logback/logback.md | 64 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/spring/logback/logback.md b/spring/logback/logback.md index 8c9741d..a567fac 100644 --- a/spring/logback/logback.md +++ b/spring/logback/logback.md @@ -107,6 +107,9 @@ logger.debug("The entry is {}.", entry); 1. 如果`logback.configurationFile`系统变量设置 2. 如果1步骤失败,会尝试在classpath中寻找`logback-test.xml` 3. 如果2步骤失败,会尝试在classpath中寻找`logback.xml` + +> #### 通过命令行System Properties设置logback配置文件位置 +> 可以通过向命令行传递`-Dlogback.configurationFile=/path/to/config.xml`来设置logback配置文件的位置 ### 通过xml形式配置logback ```xml @@ -125,3 +128,64 @@ logger.debug("The entry is {}.", entry); ``` + +### 自动加载配置文件更新 +logback支持对配置文件的变动进行扫描,并且对扫描到的变动进行自动配置。为了令logback支持配置自动更新,需要为`configuration`元素配置scan属性,示例如下所示: +```xml + + ... + +``` + +在开启配置自动更新时,默认会每间隔`1 minute`就扫描配置变动。可以通过`scanPeriod`属性自定义扫描周期,周期单位可以是`milliseconds, seconds, minutes, hours`。示例如下所示: +```xml + + ... + +``` +> 如果在没有为scanPerod属性值指定单位时,默认单位为ms + +### xml配置文件语法 +一个基础的xml配置文件可以包含如下结构: + +1. 一个``元素 + 1. 0或多个``元素 + 2. 0或多个``元素 + 3. 最多一个``元素 + +#### `` +``元素用于配置logger,其接收一个必填的`name`属性,一个可选的`level`属性,一个可选的`additivity`属性。 +- `additivity`属性的值可以为true或者false。 +- `level`属性的值可以为`TRACE, DEBUG, INFO, WARN, ERROR, ALL, OFF`,是大小写不敏感的。 + - 如果想要从上级继承level,可以将level属性的值设置为`INHERITED`或是`NULL` + +`logger`元素中可以包含0个或多个``元素,这样每个引用的appender都会被加入到logger中。 + +#### `` +`root`元素用于配置root logger,其只支持一个属性`level`。由于root元素已经被命名为`ROOT`,故而也不允许指定`name`属性。 + +``元素的`level`属性只能被赋值为`TRACE, DEBUG, INFO, WARN, ERROR, ALL, OFF`,不能被赋值为`INHERITED`或是`NULL`. + +和logger元素一样,root元素中也能包含0个或多个``元素。 + +```xml + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n + + + + + + + + + + + + +```