当前位置: 首页 > 面试题库 >

请正确初始化log4j系统。在运行Web服务时

秦俊友
2023-03-14
问题内容

问这个问题似乎很愚蠢,但我很困惑。我提到了配置Log4j属性,但这似乎无济于事。

我已经编写了一个简单的Web服务HelloWorld。而在运行它时,我得到这样的错误:

log4j:WARN找不到记录器的附加程序(org.apache.axis.transport.http.AxisServlet)。log4j:WARN请正确初始化log4j系统。

我不确定为什么会这样。

我正在使用Eclipse生成Web服务,并将其部署在Tomcat
6.0中。我查看了《Axis开发人员指南》并根据它们

log4j.configuration =
log4j.properties使用此系统属性可以指定Log4J配置文件的名称。如果未指定,则默认配置文件为log4j.properties。axis.jar中提供了一个log4j.properties文件。

我在中找不到log4j.properties axis.jar

有什么帮助吗?


问题答案:

这些消息有些棘手,足以使人们创建此消息使其更加清晰:https
:
//issues.apache.org/bugzilla/show_bug.cgi?
id =25747

关于它们的棘手之处在于,如果Log4j找不到其log4j.properties(或log4j.xml)文件,并且该文件既好又花哨但从配置的角度来看它的内容不完整,则会写警告。

以下段落摘自此处:http
:
//svn.apache.org/repos/asf/logging/log4j/tags/v1_2_9/docs/TROUBLESHOOT.html

日志输出通过使用附加程序写入目标。 如果没有任何附加程序附加到类别或其任何祖先,则在尝试登录时会收到以下消息:

log4j: No appenders could be found for category (some.category.name).
log4j: Please initialize the log4j system properly.

Log4j没有默认的日志记录目标。 用户有责任确保所有类别都可以继承附加程序。通过将附加器附加到根类别,可以轻松实现这一点。

您可以log4j.rootLogger在log4j
文档中找到有关如何配置root
logger()的信息,基本上在文件开头添加了以下内容:

log4j.rootLogger=debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

这应该清除您在启动时收到的WARN消息
(确保您尚未有名为appender的附加程序stdout;还要注意您为root记录程序指定的级别,debug它非常冗长,并且应用程序中的每个库都将开始向控制台)。

关于log4j.properties/ log4j.xml,我建议您放置该文件,/WEB- INF/classes因为将其公开以进行不同的调整(激活/停用日志,更改日志级别等)非常重要。您也可以将其放在类路径的JAR中(如注释中所指定),但是它将被包含在存档中(希望位于存档中的正确位置),并且不会像它那样容易处理在/WEB-INF/classes



 类似资料:
  • 我正在努力学习硒。 我收到以下错误消息: log4j:WARN找不到记录器(org.apache.http.client.protocol.RequestAddCookies)的追加器。log4j:警告请正确初始化log4j系统。log4j:请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig更多信息。 因此,我下载了文件,我在谷歌上搜索

  • 问题内容: 这是错误消息- 这是该类中的调用- 这是我的log4j.properties文件的内容- 属性文件在类路径上。 一切对我来说都很好,这是怎么回事?如果不是门槛也可拍摄记录? 问题答案: 好了,所以我通过更改 对此 显然,您必须将日志记录级别指定为第一个?如果我浪费任何人的时间,我深表歉意。 另外,我决定回答我自己的问题,因为这不是类路径问题。

  • 我现在正在创建一个独立的java应用程序,它需要作为可执行的JAR运行。当从Eclipse运行应用程序时,它会写入所有的日志文件,但当我运行可执行jar时,它会出现一个警告:**log4j:warn没有发现logger log4j:warn的附加文件,请正确初始化log4j系统。log4j:警告有关更多信息,请参见http://logging.apache.org/log4j/1.2/faq.ht

  • 问题内容: 将log4j添加到我的应用程序后,每次执行我的应用程序时,都会得到以下输出: 看来这意味着缺少配置文件。此配置文件应位于何处,什么是良好的入门内容? 我使用纯Java开发桌面应用程序。因此没有网络服务器等… 问题答案: 默认情况下,在上查找名为或的文件。 您可以按照此处所述通过设置系统属性来控制它用来初始化自身的文件(查找“默认初始化过程”部分)。 例如: 将导致在类路径上查找名为的文

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

  • RT-Thread 的启动流程 宏定义 #define  INIT_BOARD_EXPORT(fn)   INIT_EXPORT(fn, "1")   板级驱动初始化,fn为函数指针   #define  INIT_PREV_EXPORT(fn)   INIT_EXPORT(fn, "2")   纯软件函数自动初始化,fn为函数指针   #define  INIT_DEVICE_EXPORT(fn