我正在使用在Tomcat 6上运行的Struts2 webapp(Struts 2.2.3.1)。 正如几个教程中所见,我在log4j.xml中有以下位,它位于webapp的WEB-INF / classes目录中:
<logger name="com.opensymphony">
<level value="DEBUG" />
</logger>
<logger name="org.apache.struts2">
<level value="DEBUG" />
</logger>
在我的Tomcat配置中设置属性log4j.debug=true
之后,我在Tomcat日志中找到(如预期)以下输出:
log4j: DocumentBuilderFactory is: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
log4j: debug attribute= "null".
log4j: Ignoring debug attribute.
log4j: Threshold ="null".
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [com.opensymphony] additivity to [true].
log4j: Level value for com.opensymphony is [DEBUG].
log4j: com.opensymphony level set to DEBUG
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [org.apache.struts2] additivity to [true].
log4j: Level value for org.apache.struts2 is [DEBUG].
log4j: org.apache.struts2 level set to DEBUG
log4j: Level value for root is [DEBUG].
log4j: root level set to DEBUG
但是,在任何日志文件中都找不到任何Struts调试消息。 我的log4j版本是1.2.14。
如何正确控制Struts的日志记录?
答案 0 :(得分:0)
如果我是正确的,你必须定义某种Appender才能将日志输出重定向到日志文件。
在默认情况下,struts2日志将显示在控制台上。在log4j文件中定义类似这样的内容
<appender name="FA" class="org.apache.log4j.FileAppender">
<param name="File" value="sample.log"/>
<param name="Threshold" value="INFO"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" />
</layout>
</appender>
你必须告诉log4j重定向注销的位置