2011-12-03 9 views
0

Tomcat 6で動作するStruts2 Webアプリケーション(Struts 2.2.3.1)で遊んでいます。 いくつかのチュートリアルからわかるように、私はlog4j.xml 、WebアプリケーションのWEB-INF/classesディレクトリに展開される:log4j.xmlを使用してStruts2のログレベルを制御できません

<logger name="com.opensymphony"> 
    <level value="DEBUG" /> 
</logger> 

<logger name="org.apache.struts2"> 
    <level value="DEBUG" /> 
</logger> 

私のTomcatのconfiurationでプロパティ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

正しい場合は、ログ出力をログファイルにリダイレクトするために、ある種のAppenderを定義する必要があります。デフォルトの場合Struts2のログに

は、あなたのlog4jファイルで、このようなconsole.Defineの何かに

<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> 

を表示取得されますあなたは、私は信じていませんログアウト

+0

をリダイレクトするためにどこにlog4jを伝える必要がありますそれが問題です。私はすでにstdout appenderを持っています。その出力はcatalina.outに書き出されます。私のアプリケーションの通常のログメッセージは、そのように書かれています。 –

+0

私はたくさんのstruts2アプリケーションを自分のマシン上で実行しています。私はweb-apps内にlog4jプロパティファイルを配置しています。strut2はファイルをリダイレクトしていませんが、たくさんのログを表示しています。どのようにそれをチェックするfileAppenderを試してみる:) –

関連する問題