検索

6.2.2. 国際化されたロガー、メッセージ、例外の作成

download PDF

6.2.2.1. 国際化されたログメッセージの作成

このタスクでは、JBoss ロギングツールを使用して MessageLogger インターフェースを作成することにより、国際化されたログメッセージを作成する方法を示します。すべてのオプション機能またはログメッセージの国際化については取り上げません。
完全な例は logging-tools クイックスタートを参照してください。

前提条件

  1. Maven プロジェクトがすでに存在している必要があります。「JBoss ロギングツールの Maven 設定」を参照してください。
  2. JBoss ロギングツールに必要な Maven 設定がプロジェクトにある必要があります。

手順6.1 国際化されたログメッセージバンドルの作成

  1. メッセージロガーインターフェースの作成

    ログメッセージの定義が含まれるように Java インターフェースをプロジェクトに追加します。定義されるログメッセージに対し、インターフェースにその内容を表す名前を付けます。
    ログメッセージインターフェースの要件は次の通りです。
    • @org.jboss.logging.MessageLogger アノテーションが付けられていなければなりません。
    • org.jboss.logging.BasicLogger を拡張しなければなりません。
    • このインターフェースを実装する型付きロガーのフィールドをインターフェースが定義する必要があります。org.jboss.logging.LoggergetMessageLogger() メソッドで定義します。
    package com.company.accounts.loggers;
    
    import org.jboss.logging.BasicLogger;
    import org.jboss.logging.Logger;
    import org.jboss.logging.MessageLogger;
    
    @MessageLogger(projectCode="")
    interface AccountsLogger extends BasicLogger
    {
       AccountsLogger LOGGER = Logger.getMessageLogger(
             AccountsLogger.class,
             AccountsLogger.class.getPackage().getName() );
    }
    
  2. メソッド定義の追加

    各ログメッセージのインターフェースにメソッド定義を追加します。ログメッセージに対する各メソッドにその内容を表す名前を付けます。
    各メソッドの要件は次の通りです。
    • メソッドは void を返さなければなりません。
    • @org.jboss.logging.LogMessage アノテーションが付いていなければなりません。
    • @org.jboss.logging.Message アノテーションが付いていなければなりません。
    • @org.jboss.logging.Message の値属性にはデフォルトのログインメッセージが含まれます。翻訳がない場合にこのメッセージが使用されます。
    @LogMessage
    @Message(value = "Customer query failed, Database not available.")
    void customerQueryFailDBClosed();
    
    デフォルトのログレベルは INFO です。
  3. メソッドの呼び出し

    メッセージがロギングされなければならない場所にコードのインターフェースメソッドへの呼び出しを追加します。プロジェクトがコンパイルされる時にアノテーションプロセッサーがインターフェースの実装を作成するため、インターフェースの実装を作成する必要はありません。
    AccountsLogger.LOGGER.customerQueryFailDBClosed();
    
    カスタムのロガーは BasicLogger よりサブクラス化されるため、BasicLogger のロギングメソッド (debug()error() など) を使用することもできます。国際化されていないメッセージをログに記録するため他のロガーを作成する必要はありません。
    AccountsLogger.LOGGER.error("Invalid query syntax.");
    
結果: 現地語化できる 1 つ以上の国際化されたロガーをプロジェクトがサポートするようになります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.