java - 使用相同的 appender 回溯几个记录器
问题描述
是否有可能让多个记录器使用同一个 appender ?当我创建一个像这样的 logback.xml 时:
<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-18.18thread] %highlight(%-5level) %-30.30logger - %msg%n</pattern>
</encoder>
</appender>
<logger name="events.A" level="trace"><appender-ref ref="STDOUT"/></logger>
<logger name="events.B" level="trace"><appender-ref ref="STDOUT"/></logger>
<root level="info"/>
</configuration>
但是当我这样做时:
Logger loggerA = LoggerFactory.getLogger("events.A");
Logger loggerB = LoggerFactory.getLogger("events.B");
loggerA.trace("I am A");
loggerB.trace("I am B");
它只打印“我是 B”。
这是正常的行为吗?有办法吗?我知道我只能使用“事件”记录器,但我会有很多事件,我希望能够分别切换每个事件的日志级别。
解决方案
拥有一个带有多个记录器的附加程序不仅是可能的,而且是正常的:事实上,我通常只在<appender-ref ref="xyz"/>
标签内放置一个标签,<root>
因此它对所有记录器都有效。您的示例运行良好,因此请更好地检查您的真实配置。
推荐阅读
- database - 如何使用 MongoDB 实现 SELECT ... FOR UPDATE 和 Transactions 水平扩展服务?
- javascript - 每次更新状态时如何渲染元素
- visual-studio-code - VSCode 不会为 nextjs (9.5.2) 绑定客户端断点
- reactjs - 我想在下拉菜单上显示标题,当有人选择一个选项并提交时,我想提交年份值
- sql - BigQuery - 连接列的所有行,直到达到特定值
- python - Python 和 Selenium - 无法选中复选框
- haskell - 将相对路径转换为绝对路径
- c - 宏重定义适用于某些编译器,但不适用于其他编译器。这是什么决定的?
- wpf - 带有 ContextMenu wpf 的用户控件
- core-data - 如何判断谓词coreData对象是否为空