【发布时间】:2021-05-14 00:21:29
【问题描述】:
我继承了一个 anylogic 项目,其中部分模型逻辑已在 java 项目中实现,该模型也从中启动。
这个项目有多个记录器配置,因为在项目的大部分部分使用 log4j2,在少数部分是使用 logback 后端的 slf4j。
在 anylogic UI/Browser-Window 中,您可以查看一些 Console,其中打印了一些输出:
有趣的是,log4j-library 没有记录任何日志。
然而,那些使用 slf4j 和 logback 记录的蜜蜂也显示在 Console 中。
appender 配置如下所示:
# log4j2 appender
appender.console.type = Console
appender.console.name = consoleLogger
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
<!--- logback.xml appender --->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%highlight(%d{yyyy.MM.dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}:%L - %msg%n)</pattern>
</encoder>
</appender>
现在的问题是:两个日志框架/附加程序之间有什么区别,会导致观察到的行为?
【问题讨论】:
-
如果这有助于解决这个谜题,请随时询问更多详细信息。
System.out.println输出也显示在Console-面板中。 -
您确定 log4j2 控制台消息是未显示的,而 SLF4J/Logback 是(因为我知道会发生相反情况的原因)?此外,您的屏幕截图似乎与您的 Logback 配置相矛盾:那里的蓝色消息(可能是显示的 SLF4J 消息之一)没有您的 Logback 配置文件中指定的模式。
-
是的,我确定。事实上,很少有使用 SLF4J/Logback 的日志语句。屏幕截图中的蓝色消息是更频繁的消息,使用 System.out.println - 如前所述,日志记录(除其他外)不......完全符合清洁代码标准或类似的东西。感觉更像是一个“复制粘贴编程”项目。
标签: log4j2 logback slf4j anylogic