在Web上下文(tomcat)中初始化Log4j?

时间:2016-03-18 09:43:14

标签: java spring logging log4j

我在tomcat环境中检查了log4j设置。虽然我的webapp或#34;常用库中没有log4j-web.jar文件"文件夹,log4j正确初始化。我只在我的类路径中添加了log4j.properties。就是这样,log4j正在运行。

我正在使用spring mvc,sl4j-api.jar和sl4j-jcl.jar都在我的类路径中。

我的问题是:log4j如何正常工作并获取配置?

1 个答案:

答案 0 :(得分:0)

你说你使用了log4.properties所以我假设你使用的是log4j 1.2.x(log4 2 use log4j2.properties

当log4j类加载到LogManager类的静态初始化程序内的内存中时,Log4执行默认初始化 请参阅manual

中的“默认初始化过程”部分

只要将log4j.properties放入类路径中,它就会触发log4j日志记录 此过程将在任何环境(tomcat容器或其他)中执行 如果您想跳过此程序,请注意程序中的第1项:

  

将log4j.defaultInitOverride系统属性设置为任何其他属性   价值然后"假"将导致log4j跳过默认初始化   程序(这个程序)。

Log4Web是依赖log4j 2的扩展程序,所以它与您的情况无关。

sl4j-api.jar和sl4j-jcl.jar需要log4j-over-slf4j,如果您要迁移现有代码以使用SLF4J而不更改代码本身。 如果您对此类迁移不感兴趣,可以忽略它们。