blanco Framework 画像(小) 2009/04

blancoLogMessage

[blanco,ログメッセージ,Log,message,java.util.logging] blancoLogMessageは、「ログメッセージ定義書」という Excelブックから、ログメッセージを扱うソースコードを自動生成します。

広告: イマドキのIDE事情: Eclipseベースの統合翻訳環境「Benten」を使ってみよう 09/27
たげぞうさんの手による Benten 紹介記事!
インディックスページへ戻る
blanco Framework 一覧 ドキュメント Download (ダウンロード) SourceForge.jp
AntTask BatchProcess Cg CharacterGroup Commons Constants
Csv Db EclipseDistribution FixedLength JSF Log Mail Message NLpack
PDF Report ResourceBundle Service SOAP SQL StringConverter
StringGroup Struts SvnConf ValueObject
lib message
blancoLogMessageについて

blancoLogMessageは、「ログメッセージ定義書」という Excelブックから、ログメッセージを扱うソースコードを自動生成します。

視点 自己評価 説明
対応言語 - Java 言語
出現頻度 ★★ ログメッセージを処理させるニーズがある人に有益です。
適用効果 ★★★ ログメッセージ定義書とログメッセージ処理の実装とが同期できます。
ログメッセージ置換文字に関する処理を確実に実現することができます。
導入のしやすさ ★★★ 自動生成されるソースコードを理解さえすれば、あとは簡単に導入できます。

EclipseプラグインおよびApache Ant形式によって、簡単に利用することができます。そして、オープンソースのもと配布されています。

ログメッセージ定義書の記入

下記のように ログメッセージ定義書という様式に必要項目を記入していきます。

blancoLogMessageプラグインの実行

記入が終わったら、Eclipseプラグインの「Javaソースコード生成」ボタンを押すだけで、必要なソースコードを自動生成することができます。

自動生成されたログメッセージ・クラスの利用

自動生成されたソースコードは、以下のような記述によって利用することができます。
※実行時には ランタイム・ライブラリは不要です。

利用例 その1
        new Sample2LogMessage().logMessage002("置換文字列");
利用例 その2
        new Sample2LogMessage().logMessage001(new IllegalArgumentException("例外の例"));
自動生成されたログメッセージ・クラス

実際に生成されるソースコードは、以下のようになります。
※これとは別に、国際化対応のためのクラスが別途 1 つ自動生成されます。

Sample2LogMessage.java
/*
 * このソースコードは blanco Frameworkによって自動生成されています。
 */
package blanco.sample.logmessage;

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * ログメッセージのサンプル。このクラスは単にサンプルです。実際の動作には利用されません。
 */
public class Sample2LogMessage {
    /**
     * ログメッセージをプロパティファイル対応させるための内部的に利用するリソースバンドルクラス。
     */
    protected final Sample2LogMessageResourceBundle fBundle = new Sample2LogMessageResourceBundle();

    /**
     * ログメッセージ定義ID[Sample2]、レベル[FATAL]、キー[MESSAGE001]の文字列をロギングします。
     *
     * No.1:
     * 文字列[メッセージのサンプル。その1。]
     */
    public void logMessage001() {
        Logger.getLogger("blanco.sample.logmessage").log(Level.SEVERE, "[MESSAGE001] fatal: " + fBundle.getMessage001());
    }

    /**
     * ログメッセージ定義ID[Sample2]、レベル[FATAL]、キー[MESSAGE001]の文字列をロギングします。
     *
     * No.1:
     * 文字列[メッセージのサンプル。その1。]
     *
     * @param argThrown 例外。
     */
    public void logMessage001(final Throwable argThrown) {
        Logger.getLogger("blanco.sample.logmessage").log(Level.SEVERE, "[MESSAGE001] fatal: " + fBundle.getMessage001(), argThrown);
    }

    /**
     * ログメッセージ定義ID[Sample2]、レベル[ERROR]、キー[MESSAGE002]の文字列をロギングします。
     *
     * No.2:
     * 文字列[メッセージ置換文字[{0}]が置換されます。]
     *
     * @param arg0 置換文字列{0}の値。
     */
    public void logMessage002(final String arg0) {
        Logger.getLogger("blanco.sample.logmessage").log(Level.SEVERE, "[MESSAGE002] " + fBundle.getMessage002(arg0));
    }

    /**
     * ログメッセージ定義ID[Sample2]、レベル[ERROR]、キー[MESSAGE002]の文字列をロギングします。
     *
     * No.2:
     * 文字列[メッセージ置換文字[{0}]が置換されます。]
     *
     * @param arg0 置換文字列{0}の値。
     * @param argThrown 例外。
     */
    public void logMessage002(final String arg0, final Throwable argThrown) {
        Logger.getLogger("blanco.sample.logmessage").log(Level.SEVERE, "[MESSAGE002] " + fBundle.getMessage002(arg0), argThrown);
    }

    /**
     * ログメッセージ定義ID[Sample2]、レベル[WARN]、キー[MESSAGE003]の文字列をロギングします。
     *
     * No.3:
     * 文字列[メッセージ置換文字[{0}]に加え、もうひとつ[{1}]が置換されます。]
     *
     * @param arg0 置換文字列{0}の値。
     * @param arg1 置換文字列{1}の値。
     */
    public void logMessage003(final String arg0, final String arg1) {
        Logger.getLogger("blanco.sample.logmessage").log(Level.WARNING, "[MESSAGE003] " + fBundle.getMessage003(arg0, arg1));
    }

    /**
     * ログメッセージ定義ID[Sample2]、レベル[WARN]、キー[MESSAGE003]の文字列をロギングします。
     *
     * No.3:
     * 文字列[メッセージ置換文字[{0}]に加え、もうひとつ[{1}]が置換されます。]
     *
     * @param arg0 置換文字列{0}の値。
     * @param arg1 置換文字列{1}の値。
     * @param argThrown 例外。
     */
    public void logMessage003(final String arg0, final String arg1, final Throwable argThrown) {
        Logger.getLogger("blanco.sample.logmessage").log(Level.WARNING, "[MESSAGE003] " + fBundle.getMessage003(arg0, arg1), argThrown);
    }

…以下略…
ダウンロード (download)

blancoLogMessageの実行形式は、下記のページからダウンロードすることができます。

ログレベル・マッピング

ログメッセージ定義書、java.util.logging、org.apache.log4j の間で、ログレベルの表現のマッピングは以下のようになっています。

レベル java.util.logging のログレベル Apache log4j のログレベル 備考
- java.util.logging.Level.FINEST - 「詳細レベル(高)」。
※ログメッセージ定義書に該当レベルは無し。
TRACE java.util.logging.Level.FINER org.apache.log4j.Level.TRACE 「詳細レベル(中)」。
DEBUG java.util.logging.Level.FINE org.apache.log4j.Level.DEBUG 「詳細レベル(低)」。
CONF java.util.logging.Level.CONFIG org.apache.log4j.Level.DEBUG 「設定」。
※log4j では、ログメッセージに 「config: 」プレフィクスを付与。
INFO java.util.logging.Level.INFO org.apache.log4j.Level.INFO 「情報」。
WARN java.util.logging.Level.WARNING org.apache.log4j.Level.WARN 「警告」。
ERROR java.util.logging.Level.SEVERE org.apache.log4j.Level.ERROR 「致命的」。
FATAL java.util.logging.Level.SEVERE org.apache.log4j.Level.FATAL 「致命的」。
※java.util.logging では、ログメッセージに 「fatal: 」 プレフィクスを付与。
関連するプロダクト

blancoLogMessage は以下のプロダクトと強い関連性があります。

blancoLogはオープンソース/フリーソフトウェアです

SourceForge.jp


いがぴょんについて
Last modified: $Date: 2010/09/27 20:42:52 $