如何根据上下文名称有条件地配置登录?

问题描述 投票:10回答:3

我有三个单独的项目,每个项目都有自己的嵌入式logback.xml文件。这些文件中的每一个在用户的主目录中都包含一个通用的日志记录配置文件:

<include file="${user_home}/loggingConfig.xml"/>

包含之后,我有这个规范:

<root level="error">
    <appender-ref ref="${appender:-console}" />
</root>

这允许用户配置其日志级别和附加程序,并由核心日志记录配置文件应用它们。

例如,在〜/ loggingConfig.xml中,我有这行:

<property name="appender" value="file" />

但是喜欢控制台日志记录的同事则忽略了这一行。

问题是我想为每个日志文件使用不同的附加程序。换句话说,我想根据哪个项目正在读取定制的配置文件来有条件地设置一个不同的附加程序。

我意识到我可以配置每个项目以读取名称不同的配置文件,但是我想消除混乱并允许共享配置。

logback
3个回答
16
投票

该文档对于高级配置来说有点多余,但是我发现您可以在条件日志记录中将logback上下文名称用作变量。因此,对于每个项目,我在项目logback.xml文件中定义一个自定义上下文名称:


11
投票

如果这对其他人有帮助,这就是我使用可包含多个追加程序的属性来设置条件logback配置的方式:


0
投票

@ Trish Rempel,您在哪里指定$ {logback.loglevel} ref()?我尝试从应用程序的jvm选项中替换变量,但在设置bean属性“参数”时遇到错误[org.springframework.beans.factory.config.PropertiesFactoryBean]

© www.soinside.com 2019 - 2024. All rights reserved.