logback配置中变量和include的应用方式

网友投稿 1078 2022-12-14

logback配置中变量和include的应用方式

logback配置中变量和include的应用方式

目录logback配置中变量和include的应用Example:首先把配置内容抽取一个公共文件default.xml然后基于公共文件定义各自的配置最后在logback.xml中就可以include上面定义的文件logback.xml导入(include)其他项目配置的logback.xml文件1、其他项目存在的logback.xml文件需要下面这种形式的配置 ​2、其他项目的配置

logback配置中变量和include的应用

logback配置在实际应用中往往会遇到APPender的配置中存在大量的重复内容,但是logback又不像编程语言一样支持继承,采用include和变量结合可以一定程度上解决这个问题。

Example:

UTF-8

%d{dd.MMM.yyyy HH:mm:ss.SSS z}, [%6t], %6p, %C:%M %m%n

${LOGS_DIR}/warn.log

40MB

${LOGS_DIR}/warn%i.log.gz

1

21

2048

true

0

WARN

UTF-8

%d{dd.MMM.yyyy HH:mm:ss.SSS z}, [%6t], %6p, %C:%M %m%n

${LOGS_DIR}/info.log

10MB

${LOGS_DIR}/info%i.log.gz

1

21

2048

true

0

INFO

UTF-8

%d{dd.MMM.yyyy HH:mm:ss.SSS z}, [%6t], %6p, %C:%M %m%n

${LOGS_DIR}/debug.log

5MB

${LOGS_DIR}/debug%i.log.gz

1

21

2048

true

0

DEBUG

可以看到以上的三个定义存在大量的重复内容会导致logback文件很大,不容易维护,结合变量和include则可以一定程度上解决这个问题。

首先把配置内容抽取一个公共文件default.xml

把不同的内容用变量定义:

UTF-8

%d{dd.MMM.yyyy HH:mm:ss.SSS z}, [%6t], %6p, %C:%M %m%n

${LOGS_DIR}/${LOGFILE}.log

5MB

${LOGS_DIR}/${LOGFILE}%i.log.gz

1

21

2048

true

0

${LOG_LEVEL}

然后基于公共文件定义各自的配置

warn.xml:

info.xml:

debug.xml:

最后在logback.xml中就可以include上面定义的文件

...

logback.xml导入(include)其他项目配置的logback.xml文件

1、其他项目存在的logback.xml文件需要下面这种形式的配置 ​

下面的这个配置文件的意思是定义了两个appender,这两个appender中名为ASYNC-LOG的appender是将com.xx.cloud.trail.client.async路径下面产生的级别为error的日志进行收集,保存在定义的文件夹下面,另一个appender同理,如果这个logback.xml文件想在其他的项目中被引用那么就需要用在iucluded标签将定义的appender跟logger包围起来,表示这个是可以被导入其他项目的

/var/log/xx/cloud/trail/async/error.log.%d{yyyy-MM-dd}.log

30

class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

10MB

/var/log/xx/cloud/trail/aop/error.log.%d{yyyy-MM-dd}.log

30

class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

10MB

2、其他项目的配置

假如1中的配置logback.xml文件的名称为logback-trail.xml,那么需要在其他的项目的logback.xml文件中加入一句

表示导入其他项目的logback文件,这样就能将其他项目中的配置文件进行导入

defaultValue="logging-path-not-find"/>

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n

${logging.path}/trail/trail.log.%d{yyyy-MM-dd}.log

30

class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

10MB

defaultValue="logging-path-not-find"/>

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n

${logging.path}/trail/trail.log.%d{yyyy-MM-dd}.log

30

class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

10MB

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:手把手教你写Maven的archetype项目脚手架
下一篇:logback 实现给变量指定默认值
相关文章

 发表评论

暂时没有评论,来抢沙发吧~