如何配置Log4J2

 禾漾啊 发布于 2023-02-13 09:00

我现在花了几个小时试图解决这个问题并完全失败.我发现新的配置过程不必要地复杂.

我有一个带有web.xml文件的Servlet,其中包含以下内容:


    log4jConfiguration
    file:///etc/myApp/log4j2.xml

它似乎没有任何影响.我使用的是Tomcat 7.0.42,我已经删除了catalina.properties文件中对log4j*.jar的所有引用.我的应用程序中的日志仍在发送,但它们只是被发送到System.out而没有我指定的格式.

所以,我试着亲自手工完成:

InputStream in =
    new FileInputStream(new File("/etc/myApp/log4j2.xml"));
ConfigurationSource source = new ConfigurationSource(in);
ConfigurationFactory factory = new XMLConfigurationFactory();
Configuration configuration = factory.getConfiguration(source);
LoggerContext context = (LoggerContext) LogManager.getContext();
context.start(configuration);
context.updateLoggers();

Logger.getLogger("Test").log(Level.INFO, "This is a logging message.");

首先,这似乎完全令人费解.显然,存在一些代码将通过"log4jConfiguration"属性搜索不同的文件并基于其扩展来假设文件类型,那么为什么不LogManger.reconfigure(String)具有相同的效果呢?

其次,这也没有效果.同样,日志将打印到System.out,并且没有执行任何请求的格式.

这是我的log4j2.xml的内容:



  
    
      
    

    
      
    
  
  
    
      
      
    
  

两种情况下的输出都是这样的:

Dec 03, 2013 6:06:45 PM test.Test main
INFO: This is a logging message.

提前致谢,

约翰

编辑:这实际上是有效的.看来我失踪了,"log4j-jcl-2.0-beta9.jar".如果上面的"上下文参数"不起作用,Remko Popma的答案也会起作用.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有