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アプリケーションを使用します。
以下の設定を行うとこのフィルタはすぐに実行できます。
<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の画面を実行したログ出力結果を確認してみてください。
ログ出力結果
※もっとも詳細なログを出力した場合です。
出力するログ情報とログレベル
●ログ出力内容| ログ情報 | ログレベル |
|---|---|
| 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>
ソースコード
ダウンロード - ダウンロード
更新履歴 - 更新履歴 2008
Java 日付・時刻 - Java 2つの日付の差を求める
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - IE7で閉じる(window.close)と強制終了の対策
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Thanks Links・リンク集 - おすすめフリーソフトまとめ
Java 特集 - Java タスクトレイのアイコンを表示・点滅
使い方・応用編 - タスクトレイに格納しメモリを節約
使い方・応用編 - ショートカットキー一覧
Thanks Links・リンク集 - Thanks Links
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
その他 - 今後の開発予定
その他 - よくある質問
Web関連 - IE7で画面が真っ白の対策
使い方 - 使い方、使用方法
使い方 - ソフト内の名称
使い方 - 起動及び初期設定方法
使い方 - メッセンジャー機能
使い方 - メッセージペインの各種アイコン説明
使い方 - チャット機能
使い方 - ログ参照
使い方 - ファイルやフォルダの送信・受信
使い方 - アプリケーションの環境設定
使い方 - ソート設定と優先順位設定
使い方 - メッセージの保管
使い方 - 不在モード
使い方 - カレンダー機能
使い方 - キャプチャ機能
使い方 - 付箋機能
使い方 - 内部ブラウザ機能
使い方 - フォント設定
使い方・応用編 - configフォルダ及び各種設定ファイルについて
インストール・バージョンアップ - JREのインストール方法
インストール・バージョンアップ - インストール方法
インストール・バージョンアップ - バージョンアップ方法
Java 特集 - Java ログフィルタでHTTPを解析
インストール・バージョンアップ - バージョンアップとリリースポリシー
インストール・バージョンアップ - 初回起動時におけるWindowsファイアウォール注意点
ダウンロード - 過去のバージョンのダウンロード
Java 特集 - Java リフレクション が簡単に
その他 - 確認されている問題
IP Messenger 互換について - IP Messenger 互換について
更新履歴 - 更新履歴 2007
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - あらゆる日付・時刻文字列をDate、Calendar型へ変換
その他 - 掲示板・アンケート
インストール・バージョンアップ - アンインストール方法
インストール・バージョンアップ - ソフトに個別のJREを適用させる方法
Java ネットワーク - Java 実行しているマシンのホスト名を取得
その他 - iP ! (アイピー) 2008年 04月号に掲載
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
その他 - Vistaでのスクリーンショット
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java LPAD、RPADで整形
その他 - CM を見る
更新履歴 - 更新履歴 2006
Java 文字列 - Java 文字列内のURLをリンクに変換
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
その他 - 掲示板について
その他 - このサイトについて
その他 - プロフィール
Thanks Links・リンク集 - 相互リンク募集
Thanks Links・リンク集 - リンク集・ソフトウェア
更新履歴 - 更新履歴 2008
Java 日付・時刻 - Java 2つの日付の差を求める
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - IE7で閉じる(window.close)と強制終了の対策
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Thanks Links・リンク集 - おすすめフリーソフトまとめ
Java 特集 - Java タスクトレイのアイコンを表示・点滅
使い方・応用編 - タスクトレイに格納しメモリを節約
使い方・応用編 - ショートカットキー一覧
Thanks Links・リンク集 - Thanks Links
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
その他 - 今後の開発予定
その他 - よくある質問
Web関連 - IE7で画面が真っ白の対策
使い方 - 使い方、使用方法
使い方 - ソフト内の名称
使い方 - 起動及び初期設定方法
使い方 - メッセンジャー機能
使い方 - メッセージペインの各種アイコン説明
使い方 - チャット機能
使い方 - ログ参照
使い方 - ファイルやフォルダの送信・受信
使い方 - アプリケーションの環境設定
使い方 - ソート設定と優先順位設定
使い方 - メッセージの保管
使い方 - 不在モード
使い方 - カレンダー機能
使い方 - キャプチャ機能
使い方 - 付箋機能
使い方 - 内部ブラウザ機能
使い方 - フォント設定
使い方・応用編 - configフォルダ及び各種設定ファイルについて
インストール・バージョンアップ - JREのインストール方法
インストール・バージョンアップ - インストール方法
インストール・バージョンアップ - バージョンアップ方法
Java 特集 - Java ログフィルタでHTTPを解析
インストール・バージョンアップ - バージョンアップとリリースポリシー
インストール・バージョンアップ - 初回起動時におけるWindowsファイアウォール注意点
ダウンロード - 過去のバージョンのダウンロード
Java 特集 - Java リフレクション が簡単に
その他 - 確認されている問題
IP Messenger 互換について - IP Messenger 互換について
更新履歴 - 更新履歴 2007
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - あらゆる日付・時刻文字列をDate、Calendar型へ変換
その他 - 掲示板・アンケート
インストール・バージョンアップ - アンインストール方法
インストール・バージョンアップ - ソフトに個別のJREを適用させる方法
Java ネットワーク - Java 実行しているマシンのホスト名を取得
その他 - iP ! (アイピー) 2008年 04月号に掲載
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
その他 - Vistaでのスクリーンショット
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java LPAD、RPADで整形
その他 - CM を見る
更新履歴 - 更新履歴 2006
Java 文字列 - Java 文字列内のURLをリンクに変換
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
その他 - 掲示板について
その他 - このサイトについて
その他 - プロフィール
Thanks Links・リンク集 - 相互リンク募集
Thanks Links・リンク集 - リンク集・ソフトウェア
| Chat&Messenger チャットもメッセンジャーも!! |
Template by ブログ アフィリエイト SEO テンプレート
無料ホームページ アフィリエイト レンタルサーバー FC2ブログ 一戸建て
Template by ブログ アフィリエイト SEO テンプレート
無料ホームページ アフィリエイト レンタルサーバー FC2ブログ 一戸建て

