Chat&Messenger - チャット & メッセンジャーでビジネスが加速する -
IP Messenger 互換。チャット、メッセンジャー、テレビ会議、スケジュール、文書共有、キャプチャを統合したフリーソフト

Java ログフィルタでHTTPを解析

Java ログフィルタでHTTPリクエストを解析

javax.servlet.Filterを実装してHTTPリクエストの内容を解析してログを出力する便利なFilterクラスを紹介します。
このログフィルタは、ログ出力に「java.util.logging.Logger」を使用しており、ログレベルを変更することで出力する情報を変更できます。

javax.servlet.Filterとは

Webアプリケーション構築する上で、メインとなる業務処理のほかに、その前後で共通した副次的な処理を行う必要があります。 例えば、クライアントの認証や、権限チェック、ロギング等です。 このような副次的な処理をそれぞれのリソースでコーディングすると、ソフトウェアの保守性を妨げる大きな原因となり、メンテナンスのしにくいアプリケーションになってしまいます。

javax.servlet.Filterを実装すれば、リクエスがサーブレットクラスに渡される前に、この副次的な処理を、共通して実行させることができます。
またフィルタの設定はweb.xmlで出来るので、ソースコードを変更することなく、フィルタを追加したり削除することが柔軟に出来ます。

ログフィルタを使ってみる

HTTPリクエストにフィルタを通して、HTTPリクエストを解析するログフィルタを実際に使ってみましょう。
今回はTomcatに最初からあるexamplesアプリケーションを使用します。
以下の設定を行うとこのフィルタはすぐに実行できます。
1.ソースコードを取得してコンパイルする。
2.コンパイルしたクラスファイルを、「/examples/WEB-INF/classes」配下に配置します。
3.web.xmlに以下の定義を設定する。
  <filter>
   <filter-name>LogFilter</filter-name>
   <filter-class>LogFilter</filter-class>
   <init-param>
    <param-name>logging.Level</param-name>
    <param-value>FINE</param-value>
   </init-param>
  </filter>
  <filter-mapping> 
   <filter-name>LogFilter</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
※Strutsフレームワークを使用した場合のurl-patternは以下になります。
   <url-pattern>*.do</url-pattern>

Sessions Exampleの画面を実行したログ出力結果を確認してみてください。
javax.servlet.FilterログフィルタでWebアプリケーション解析

ログ出力結果
※もっとも詳細なログを出力した場合です。

出力するログ情報とログレベル

●ログ出力内容
ログ情報ログレベル
Cookie情報FINE
HTTPヘッダ情報FINE
HTTPその他の情報FINE
HTTPリクエストパラメータCONFIG
requestスコープのオブジェクトCONFIG
sessionスコープのオブジェクトCONFIG
リクエスト前後のメモリー使用量CONFIG
画面遷移情報INFO

ログレベルは以下のように使い分けると良いでしょう。
  • FINE・・・もっとも詳細なログを出力します。HTTPリクエストを詳しく解析したい場合に設定します。
  • CONFIG・・・やや詳細なログを出力します。開発期間中はこのレベルにしているとよいでしょう。
  • INFO・・・・画面遷移情報のみを出力します。
●ログレベルの変更方法
初期化パラメータlogging.Levelを設定することで、ログの出力レベルを変更できます。
例:
   <init-param>
    <param-name>logging.Level</param-name>
    <param-value>INFO</param-value>
   </init-param>

ソースコード


ページトップへ
ダウンロード - ダウンロード詳細
更新履歴 - 更新履歴 2014 - 2015
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
その他 - 確認されている問題点と解消方法
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
Thanks Links・リンク集 - おすすめフリーソフトまとめ
インストール / Verup - バージョンアップ方法 インストール無し版
インストール / Verup - 初回起動時におけるWindowsファイアウォール
更新履歴 - 更新履歴 2011 - 2013
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
インストール / Verup - JREのインストール方法
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - オフライン時の Email 転送
CAMServer - CAMServer のバージョンアップ
ダウンロード - CAMServer のダウンロード
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - SaaS型 オンデマンド型サービスとして提供
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
応用編 - フォント設定
メッセンジャー / チャット - 概要資料PDF版
スケジュール / カレンダー - 会議室・施設予約
応用編 - configフォルダ及び各種設定ファイルについて
CAMServer - 特定商取引に関する法律に基づく表記
インストール / Verup - ソフトに個別のJREを適用させる方法
更新履歴 - 更新履歴 2007 Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
その他 - Windows100% 2008年9月号に掲載
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
応用編 - タスクトレイに格納しメモリを節約
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
その他 - おとなのWindows 2008年 12月号に掲載
Java 特集 - Java リフレクション が簡単に
その他 - iP ! (アイピー) 2008年 04月号に掲載
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
更新履歴 - 更新履歴 2006
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め