我在tomcat环境中检查了log4j设置。虽然我的webapp或#34;常用库中没有log4j-web.jar文件"文件夹,log4j正确初始化。我只在我的类路径中添加了log4j.properties。就是这样,log4j正在运行。
我正在使用spring mvc,sl4j-api.jar和sl4j-jcl.jar都在我的类路径中。
我的问题是:log4j如何正常工作并获取配置?
答案 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而不更改代码本身。 如果您对此类迁移不感兴趣,可以忽略它们。