java“log4j:WARN请正确初始化log4j系统”错误
我有一个web应用程序,其中一个JSP包含:
PropertyConfigurator.configure(System.getenv("MY_HOME") + "/cfg/log4j.properties");
我仔细检查了MY_HOME
是否已设置
Tomcat web服务器说:
log4j:WARN No appenders could be found for logger (com.mycompany.data.JobData).
log4j:WARN Please initialize the log4j system properly.
同样的设置在另一台服务器上也可以正常工作
有什么提示吗
问题是没有创建日志
# 1 楼答案
与你的答案无关,但这也有帮助
如果是web应用程序,最简单的方法是确保
log4j.properties
位于WAR
文件的WEB-INF/classes
文件夹中。部署应用程序时,将配置log4J# 2 楼答案
必须在系统中的任何内容尝试登录之前调用PropertyConfiguration以避免此警告。您可能会发现在命令行上设置log4j配置更可靠
或者你可以忽略警告
顺便说一句:你不想太频繁地调用这个方法,最好只调用一次
# 3 楼答案
我能够在ApacheTomcat6中运行Eclipse动态Web项目来找到这个问题的解决方案。基本上,您需要从上下文中加载log4j属性文件
两个基本步骤
(1)获取log4j。属性文件放入war文件的“类目录”
(2)从当前上下文中读取log4j属性文件。我发现最好的方法是访问当前线程的上下文并从那里开始工作
对于上面的第一步,修改Eclipse构建过程以添加一个附加目录,该目录最终将加载到war文件中的WEB-INF/classes目录中。具体地说
(1)在Eclipse中,右键单击项目浏览器中的项目,选择“新建”->;'文件夹'。您可以为文件夹命名任何名称,但本例中的标准名称是“资源”。新文件夹应显示在项目的根级别
(2)移动log4j。属性文件保存到此新文件夹中
(3)再次右键单击项目,然后选择“构建路径”->;'配置“生成路径”。选择“源”选项卡。单击“添加文件夹”按钮。浏览以查找在上述步骤(1)中创建的新文件夹。选择“确定”
(4)回到EclipseProjectExplorer视图后,请注意该文件夹现在已移动到“Java资源”区域(即,由于eclipse表示抽象,它不再位于根目录下)
(5)清洁构建您的项目
(6)验证。属性文件现在存在于war文件的WEB-INF/classes中,请将war文件导出到一个方便的位置(右键单击Project->;导出->;war文件),然后签出内容。注意log4j。属性文件现在显示在WEB-INF/classes中
现在进入上面的第二步,访问上下文以读取文件。在尝试读取文件的位置添加以下代码。请注意,这将从war文件上下文中读取该文件,因此当war文件从一个服务器移动到另一个服务器时,该文件“应该”起作用
# 4 楼答案
你可以试试这个,它对我有帮助。 http://www.log4j.ru/articles/HelloWorld.html