gpt4 book ai didi

java - 迁移到 weblogic 上的 logback,但不记录日志

转载 作者:行者123 更新时间:2023-12-01 04:29:36 32 4
gpt4 key购买 nike

我正在运行 POC 来查看将 j2ee 应用程序迁移到 logback 的影响。我在官方网站上花了一些时间,显然,除了新 jar 之外唯一的变化是 logback.xml 文件。不幸的是,看起来还不够,部署工作并且也创建了日志文件,但没有记录任何内容(空)。

我的代码有以下语句

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private static final Logger log = LoggerFactory.getLogger(CustomerServiceBean.class);
log.debug("test Log Back - customer ID " + input.getCustomerId());

pom.xml 现在具有以下内容

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.18</version>
</dependency>

logback.xml(使用官方网站的Web实用程序创建)

<configuration>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<File>/var/log/dcs-3/dcs3.log</File>
<encoder>
<pattern>%d{ABSOLUTE} %5p %c{1}:%L - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<maxIndex>1</maxIndex>
<FileNamePattern>/var/log/dcs-3/dcs3.log.%i</FileNamePattern>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>1MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="com.lgi.dcs" level="DEBUG" />
<root level="debug">
<appender-ref ref="file"/>
</root>
</configuration>

有什么想法吗?谢谢

更新
我按照建议做了一些更改。该问题仍然悬而未决,但我能够获得更多信息。
我记录了错误而不是简单的调试。我从项目中删除了所有 log4j jar 或依赖项,并添加了 log4j-bridge。我使用从另一篇文章中获取的更通用的内容更改了 logback.xml,并除了文件之外还在控制台上使用了附加程序。

现在在我的 IDE 中,Logger 实例看起来是由 ch.qos.locback.classic.Logger 实现的。日志文件仍然是空的,但如果我删除它,则会在服务器启动期间重新创建。在服务器日志上,我现在可以看到我的测试消息,例如:

SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [zip:/opt/oracle-soa/user_projects/domains/osb/servers/AdminServer/tmp/_WL_user/dcs3-ear-3/9yhkv9/APP-INF/lib/logback-classic-0.9.18.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [zip:/opt/oracle-soa/user_projects/domains/osb/servers/AdminServer/tmp/_WL_user/dcs3-ear-3/9yhkv9/APP-INF/lib/logback-classic-0.9.18.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 11:40:17.902 [[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'] ERROR c.l.d.s.customer.CustomerServiceBean - test Log Back - customer ID 6107576

这可能让我想到 weblogic 中的 log4j。

最佳答案

正如您上面提到的,记录器工厂返回 log4j 的实例而不是 logback。这意味着类路径上仍然有 log4j。它可能被直接提供并错误地留在那里,或者它作为您正在使用的库的依赖项出现。如果您使用 maven,请尝试调查 EFFECTIVE POM 中是否存在 log4j,并将其排除。否则你必须手动完成。如果您发现该依赖项,删除它应该可以解决问题。

您应该寻找的 jar 可能是 slf4j 桥 log4j-over-slf4jjcl-over-slf4j 也可能相关。

关于java - 迁移到 weblogic 上的 logback,但不记录日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105085/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com