首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不使用Log4j属性的SLF4J

不使用Log4j属性的SLF4J
EN

Stack Overflow用户
提问于 2018-01-19 15:15:32
回答 1查看 2.8K关注 0票数 4

我正在尝试迁移一个使用log4j 1.2.6的Java应用程序,以使用SLF4J。首先,我只是想让它使用log4j 1.2.6作为日志记录实现。log4j配置将从数据库加载,然后使用PropertyConfigurator.configure()进行设置。在尝试迁移到SLF4J之前,它一直工作得很好。

但是,在我将日志记录调用转换为使用SLF4J并在pom.xml文件中添加了所需的条目之后,log4j实现似乎没有受到PropertyConfigurator.configure()调用的影响。应用程序似乎正在使用log4j进行日志记录,但它只是登录到控制台,而不是基于PropertyConfigurator.configure()调用的方式。

有趣的是,如果我使用log4J日志记录调用,那么这些日志将按照预期的方式,使用通过PropertyConfigurator.configure()调用设置的约束设置。

下面是我的代码片段;

代码语言:javascript
运行
复制
import org.apache.log4j.PropertyConfigurator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
public class Initialization extends HttpServlet {
private static final Logger log = LoggerFactory.getLogger ( Initialization.class );  
private static final org.apache.log4j.Logger log4j = org.apache.log4j.Logger.getLogger(Initialization.class);
...
PropertyConfigurator.configure ( logProps );

log4j.error("This gets logged as expected based on the log4J config set by the above call.");
log.error("This gets logged to the console.");

下面是我的pom.xml文件中的内容:

代码语言:javascript
运行
复制
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<dependency> 
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version> 
</dependency>

由于某种原因,以编程方式设置的配置没有影响SLF4J使用的log4J实现。或者SLF4J没有使用log4J实现。

我还尝试从文件中加载log4j属性:

代码语言:javascript
运行
复制
PropertyConfigurator.configure ( sc.getRealPath ( "/WEB-INF/properties/log4j.props" ) );

但这也有同样的结果。我在一个新的应用程序中也尝试过同样的方法,SLF4J日志语句正确地使用了log4j设置并正确地记录了日志。

EN

回答 1

Stack Overflow用户

发布于 2018-01-22 19:26:58

我通过在weblogic.xml文件中添加以下内容解决了这个问题:

代码语言:javascript
运行
复制
<prefer-application-packages>
    <package-name>org.slf4j</package-name>
</prefer-application-packages>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48344181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档