Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 > オープンソース > Tomcat −6.アクセスログ
更新日:2012/12/1
Tomcat−6.アクセスログ
ここでは、Tomcatのアクセスログを取得する方法について解説します。

実行環境
・WindowsXP Home Edition
・Tomcat 5.0.18
・J2SDK 1.4.2_03
設定方法
Tomcatのアクセスログ設定はserver.xmlやコンテキスト名.xmlに設定する<Valve>タグで行います。アクセスログとはコンテキストに設置されたJSP、サーブレット、HTML、GIFファイルなどのアクセス状況を表すログで、Tomcat動作に関するログ(エラーログなど)とは異なります。Tomcat動作に関するログは<Logger>タグで行います(Tomcat5.5からは、<Logger>タグではなく、logging.propertiesファイルで行うようになりました)。<Valve>タグでは、ログファイル名、ログパターンなどを指定できます。

<Valve>タグは<Engine>タグ、<Host>タグ、<Context>タグのサブ要素として設定できます。<Engine>タグのサブ要素として設定した場合はそのTomcatエンジンすべてのアクセスログを生成します。<Host>タグのサブ要素として設定した場合はTomcatエンジン内に設定したある仮想ホストすべてのアクセスログを生成します。<Context>タグのサブ要素として設定した場合は、設定されたコンテキストのすべてのアクセスログを生成します。

以下はアクセスログ生成で指定できる<Valve>タグの属性です。
属性
内容
デフォルト
必須
className
アクセスログを生成するJavaクラスを指定。値はorg.apache.catalina.valves. AccessLogValveでなければならない。
-
directory
アクセスログが生成されるディレクトリを指定。相対PATHで指定した場合は、$CATALINA_HOME以下に指定ディレクトリが続く形になる。指定ディレクトリがない場合はログ生成時に作成される。
logs
-
pattern
アクセスログのフォーマットを%a、%qなどの指定値で指定できる。詳細はTomcatドキュメントを参照。
common
-
prefix
アクセスログが生成されるファイル名の最初に来る名前を指定する。prefix自体を指定したくない場合は0を指定する。
access_log
-
resolveHosts
リモートホストのIPアドレスをDNS名前解決により、ホスト名に変換するかどうかを指定する。trueに指定した場合はサーバに負荷がかかる。
false
-
suffix
アクセスログが生成されるファイル名の最後に来る名前を指定する。
" "
-
rotatable
ログファイルのローテートを行うかどうかを指定する。
true
-
condition
ServletRequest.getAttribute( )の値がNullの場合のみログを生成する。たとえば、condition="key"と設定されており、ServletRequest.getAttribute("key") == nullの場合のみそのアクセスログが生成される。
-
-
fileDateFormat
アクセスログをローテートする場合にファイル名に付与される日付フォーマットを指定する。また、ローテートのタイミングを指定することもできる。yyyy-MM-dd.HHと設定することにより毎時ローテートが行われる。
yyyy-MM-dd
-
設定例
アクセスログ生成における<Valve>タグの設定例を記載します。
<Host name="localhost"
      debug="0" appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">

  <Valve className="org.apache.catalina.valves.AccessLogValve"
         directory="logs/AccessLog"
         prefix="tomcat_accs_"
         suffix=".log" />

----------------------
----------------------
1. localhostと指定された仮想ホストすべてのアクセスログを生成するため、server.xmlファイルの<Host>タグの配下に<Valve>タグを設定します。
2. アクセスログが生成されるディレクトリは$CATALINA_HOME\logs\AccessLogとします。
3. アクセスログファイルの先頭文字はtomcat_accs_とします。
4. アクセスログファイルの後方文字は.logとします。
Tomcatを起動し、いくつかのファイルにアクセスします。 $CATALINA_HOME\logs\AccessLogディレクトリにtomcat_accs_2004-02-25.logファイルが作成され、以下のようなアクセスログが生成されます。
127.0.0.1 - - [25/Feb/2004:13:32:36 +0000] "GET /jsp-examples/ HTTP/1.1" 
200 14551 
127.0.0.1 - - [25/Feb/2004:13:32:36 +0000] "GET /jsp-examples/images/cod
e.gif HTTP/1.1" 200 292 
127.0.0.1 - - [25/Feb/2004:13:32:36 +0000] "GET /jsp-examples/images/ret
urn.gif HTTP/1.1" 200 1231 
127.0.0.1 - - [25/Feb/2004:13:32:36 +0000] "GET /jsp-examples/images/exe
cute.gif HTTP/1.1" 200 1242 
127.0.0.1 - - [25/Feb/2004:13:32:41 +0000] "GET /jsp-examples/jsp2/el/ba
sic-arithmetic.jsp HTTP/1.1" 200 1437



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道