jav*_*thu 23 java axis web-services log4j
也许看起来很傻,但是我感到很困惑.我提到了配置Log4j属性,但它似乎没有帮助.
我写了一个简单的Web服务HelloWorld.在运行它时,我得到的错误是这样的:
log4j:WARN找不到logger(org.apache.axis.transport.http.AxisServlet)的appender.log4j:WARN请正确初始化log4j系统.
我不确定为什么会发生这种情况.
我使用Eclipse生成Web服务并部署在Tomcat 6.0中.我查看了Axis Developer's Guide并根据它们进行了检查
log4j.configuration = log4j.properties使用此系统属性指定Log4J配置文件的名称.如果未指定,则默认配置文件为log4j.properties.在axis.jar中提供了log4j.properties文件.
我没有找到log4j.properties axis.jar.
对此有何帮助?
小智 41
这些消息很棘手,足以让人们创建它以使其更清晰: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
使用appender将记录输出写入目标.如果没有附加到类别或其任何祖先的appender,您将在尝试记录时收到以下消息:
log4j: No appenders could be found for category (some.category.name).
log4j: Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)
Log4j没有默认的日志记录目标.用户有责任确保所有类别都可以继承appender.这可以通过将appender附加到根类别来轻松实现.
您可以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
Run Code Online (Sandbox Code Playgroud)
这应该清除你在启动时得到的那些WARN消息(确保你没有命名的appender stdout;也要注意你给root logger的级别,debug会非常冗长,你应用程序中的每个库都会开始写东西到控制台).
关于log4j.properties/ log4j.xml,我建议你放置这个文件,/WEB-INF/classes因为重要的是让它暴露出来进行不同的调整(激活/停用日志,更改日志级别等).您也可以在类路径中的JAR中(如您在注释中指定的那样),但它将被包含在存档中(希望在存档中的正确位置)并且不会像在它中一样容易处理均/WEB-INF/classes.
| 归档时间: |
|
| 查看次数: |
148875 次 |
| 最近记录: |