log4j2:定义多个appender的常用设置

时间:2018-06-02 10:52:29

标签: log4j2

我们正在使用log4j2.properties文件来配置应用程序日志记录。 在属性中,我们定义了多种类型的appender,例如rolling,jso_rolling,slowlogs等。对于它们中的每一个,我们共同具有相同的设置,并且应该为每个设置明确地定义它们。结果,属性文件增长并且非常多余。有没有办法为所有类型的appender定义常用设置用于记录?

在Apache文档中声明了以下内容:“每个Appender都必须实现Appender接口。”很公平,但我相信有一种方法可以为所有这些应用常用设置。

现状:

appender.rolling.type = RollingFile
appender.rolling.name = plain_rolling
appender.rolling.fileName = <path>/<name>-${sys:ls.log.format}.log
appender.rolling.filePattern = ...
appender.rolling.policies.type = Policies
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 1GB
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
...

appender.json_rolling.type = RollingFile
appender.json_rolling.name = json_rolling
appender.json_rolling.fileName = <path>/<name>-${sys:ls.log.format}.log
appender.json_rolling.filePattern = ...
appender.json_rolling.policies.type = Policies
appender.json_rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.json_rolling.policies.size.size = 1GB
appender.json_rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.json_rolling.policies.time.interval = 1
....

next appender ...

期望的状态(或类似的东西):

appender.rolling.type = RollingFile

appender.rolling.names = plain_rolling, json_rolling

appender.fileName = <path>/<name>-${sys:ls.log.format}.log
appender.filePattern = ...
appender.policies.type = Policies
appender.policies.size.type = SizeBasedTriggeringPolicy
appender.policies.size.size = ...
appender.policies.time.type = TimeBasedTriggeringPolicy
appender.policies.time.interval = ...
....

文件将通过fileName中的$ {sys:ls.log.format} .log进行区分。

我没有在文档中找到多个appender的常用配置,所以非常感谢您的帮助! 提前谢谢!

0 个答案:

没有答案