1.1 Log4J とは
Log4J は Jakarta プロジェクトで開発が進められている Java プログラム用のログ API です。Log4J を利用することで、様々なロギングが可能になります。またパフォーマンスにも十分に配慮されて設計されているので、ログの記録に用いるコードをプログラムソースに残したまま出荷しても、特に問題は起こらないようになっています。
Log4Jを使うことで例えば以下のようなことが可能です。
ログの出力レベルの設定
ログファイルのローテーション
設定ファイルによる出力メッセージのカスタマイズ
クラス及びパッケージ毎のロギング制御
出力対象のカスタマイズ(ファイル、コンソール、DB、・・・)
他にも Log4J の優れた機能があります。ログを出力する部分をグループ化しておくことで、プログラム中の特定部分の動作情報だけを出力したり、出力先にファイル、OutputStream、java.io.Writer、リモート Log4J サーバ、リモート Unix Syslog デーモン、NT イベントログなどを簡単に指定することができます。
1.2 Log4J の構成
Log4J には 3 つの主要なコンポーネントがあります。
• Logger
• Appender
• Layout
Logger: Log4Jの最大の利点は、ログメッセージをカテゴリーごとに分類することで、 ログメッセージをカテゴリーごとに出力するかどうかの選択ができることで す。この機能を使えば、任意の粒度でログ出力するかどうかの可能になります。
カテゴリー名は、大文字と小文字の区別があり、ドットで区切られた階層的 な名前付け規則に従います。例えば、”com.foo” と名づけられたカテゴリー は、 “com.foo.Bar”と名づけられたカテゴリーの親になります。また、全て のカテゴリーの親にあたるものはRootカテゴリーになります。
それぞれのカテゴリーは、優先度を割り当てることができます。設定可能な 優先度は、高い順にFATAL、ERROR、WARN、 INFO、DEBUGです。与えられたカテゴリーが優先度を割 り当てられないときは、優先度が割り当てられた最も近い先祖から、優先度 を継承します。
Appender :Log4Jでは、appenderを設定することで様々な宛先にログを出力することが できます。 現在appenderは、コンソール、ファイル、GUI コンポーネント、 リモートソケットサーバ、JMS、NT イベントログ、リモート・UNIX Syslog デーモンがあります。カテゴリは複数のアペンダ-を参照することができます。
Layout はその名の通り、ログの出力フォーマットを指定するものです。単純なテキスト出力、ユーザが指定したレイアウト、HTML のテーブルレイアウトなどを指定することができます。
1.3 Configuration Scripts:
通常アプリケーション・コードにログのリクエストを挿入することは簡単なことではありません。Log4J環境は完全にプログラム・コンフィグラブルです。さらにコンフィグラブル・ファイルを使用することでさらに柔軟性が得られます。コンフィグラブル・ファイルはXMLでjava properties (key=value)に記述することができます。
1.4 Log4j in EspressReport:
EspressReportのJavaプログラムにlog4jパッケージをインポートすることができます。
※log4jライブラリは、脆弱性の問題により、ver 7.0 update 12以降のバージョンでは含まれておりません。
——–Javaプログラムサンプル————-
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.text.*;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.*;
import quadbase.common.param.Parameters;
import quadbase.reportdesigner.ReportAPI.QbReport;
–
–
–
——————————————————
1.5 ログ出力例:
TomcatでのLog4Jによるログ・フォルダに生成された出力ログ
1.6 レポート出力例:
EspressReportによりログからPDFでの出力サンプル
1.7 結論:
Log4jJはロギングの様々な要件を実装したロギングライブラリの一つで、多くの機能を持っていますが、そのレポート機能は貧弱なものがあります。Log4JとEspressReportを併用することにより、レポートとチャートを持ったユーザに分かり易いレポートをダイナミックに作成・配信することができます。
同様にEspressChartを活用してグラフ(チャート)への展開も可能です。
関連するトピックス:
- APIによるテンプレート無しでのチャート作成方法
- Scheduler【Java対応レポート・帳票ツールEspressReport】
- チャート座標と画像座標の変換方法[EspressChart]
- チャート・グラフをWeb上に展開するプログラム【Javaチャート・グラフ作成ツールEspressChart】
- EspressReport Scheduler【Java対応レポート・帳票ツールEspressReport】
- 統計解析向けR言語: EspressChartの連携でデータを簡単に可視化を実現 : JRI (Java R Interface) 事例
- Javaオブジェクト/アレー データとEJB【Javaチャート・グラフ作成ツールEspressChart】
- 画像(キャンバス)サイズを変えずにグラフのみサイズを変える方法[EspressChart]
- EspressDashboard – 日本語化(Web部分)【Java対応ダッシュボード配信ツールEspressDashboard】
- レポート・帳票をweb上に展開するプログラム【Java対応レポート帳票ツール:EspressReport】