$CATALINA_HOME/webapps/アプリ名/WEB-INF/web.xml の先頭部分につぎのように<filter>を追記する。
------------------------------------------------------------------------------
<web-app>
<filter>
<filter-name>requestdumper</filter-name>
<filter-class>
org.apache.catalina.filters.RequestDumperFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>requestdumper</filter-name>
<url-pattern>/target_path/*</url-pattern>
</filter-mapping>
(以下省略)
------------------------------------------------------------------------------
$CATALINA_HOME/conf/logging.properties を編集。
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
に
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, 5request-dumper.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
のように 5request-dumper.org.apache.juli.FileHandler, を追記し、
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
の下あたりに
# request dumper configuration
5request-dumper.org.apache.juli.FileHandler.level = INFO
5request-dumper.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
5request-dumper.org.apache.juli.FileHandler.prefix = request-dumper.
5request-dumper.org.apache.juli.FileHandler.formatter = org.apache.juli.VerbatimFormatter
org.apache.catalina.filters.RequestDumperFilter.level = INFO
org.apache.catalina.filters.RequestDumperFilter.handlers = 5request-dumper.org.apache.juli.FileHandler
を追記する。
アプリをデプロイし直し、Tomcatを再起動。
これで
$CATALINA_HOME/logs/
に
request-dumper.2014-09-30.log
のようなログファイルが生成される。
理由はわからないが、POSTリクエストで送信されたUTF-8の2バイト文字が、それを受け取ったフィルターのurl-patternに含まれるServletで文字化けしなくなった。
ちなみにJavaのソースコードはシフトJIS。
0 件のコメント:
コメントを投稿