当前位置: 首页 > 知识库问答 >
问题:

Singleton、startup和log4j初始化:找不到记录器的附加器

田博远
2023-03-14

我们编写了这样一个简单的类:

import org.apache.log4j.Logger;
[...]
@Singleton
@Startup
public class ContactFormScheduler {

private static final Logger log = Logger.getLogger(ContactFormScheduler.class); 

[...]

启动服务器(WildFly 10.1.0)时,出现以下错误:

15:35:27142错误[stderr](ServerService线程池--58)log4j:警告找不到记录器(com.test.ContactFormScheduler)的附加程序。

15:35:27,143错误[stderr](ServerService线程池--58)log4j:警告请正确初始化log4j系统。

有什么提示吗?初始化log4j的最佳方法是什么?

在网上。xml:

<context-param>
    <param-name>log4j-config-location</param-name>
    <param-value>/WEB-INF/log4j.properties</param-value> 
</context-param>

在jboss部署结构中。xml

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
    <!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
    <exclusions>
        <module name="org.apache.log4j" />
    </exclusions>
</deployment>
</jboss-deployment-structure>

其他类记录正确。

谢谢Andrea

共有1个答案

薛烈
2023-03-14

如果将log4j排除在WAR/lib目录中,请删除jboss部署结构。xml并移动log4j。属性toWAR/WEB-INF/classesWildFly会自动为您的部署配置log4j。

如果您宁愿使用自己版本的log4j,您仍然需要将您的log4j.properties移动到WAR/WEB-INF/class目录,因为log4j无法从WAR/WEB-INF目录中读取任何内容...

 类似资料:
  • 有人能帮我摆脱困境吗我收到了这个警告信息 班级: jlc-log4j.properties文件:我这样指定

  • 我已经将log4j放入了buildpath中,但在运行应用程序时会收到以下消息: 这些警告意味着什么?这里的附加符是什么?

  • 我尝试使用第二个日志文件与我的默认日志文件在servlet我有这个log4j.xml配置。 现在在servlet中,我将记录器设置为: 但在运行时:错误日志。调试(“启动应用程序”);我得到: log4j和log4j.xml在类路径我做错了什么?

  • 问题内容: 我已经将log4j放到了我的构建路径中,但是在运行应用程序时收到以下消息: 这些警告是什么意思?这里的追加器是什么? 问题答案: 这个log4j指南的简短介绍有些陈旧,但仍然有效。 该指南将为你提供有关如何使用记录器和附加器的信息。 为了让你步入正轨,你可以采用两种简单的方法。 首先是将这一行添加到你的main方法中: 第二种方法是将这个标准文件log4j.properties(来自上

  • 我已经把我的log4j放好了。我的webapp的lib文件夹中的properties文件我还尝试在META-INF中输入如下内容: 这是我的log4j.properties.我得到以上警告和记录器是不写任何文件。我也创建了文件夹结构,如上所述。

  • log4j.属性 我的主类在一个带有子名称空间的包中,我试图在其中记录如下: 但我仍然收到一条错误消息,我不知道该怎么做。您可以看到上面的注释行BasicConfigurator。据我所知,应该读取log4j.properties而不调用那一行,对吗? log4j:警告找不到logger(at.company.project.poi.MainClass)的附加程序。log4j:警告请正确初始化lo