Class LogUtil

java.lang.Object
nablarch.core.log.LogUtil

public final class LogUtil extends Object
ログ出力の実装を助けるユーティリティ。
Author:
Kiyohito Itoh
  • Method Details

    • generateExecutionId

      public static String generateExecutionId()
      実行時IDを生成する。
       実行時IDは下記のフォーマットで生成する。
       
       起動プロセス+日時("yyyyMMddHHmmssSSS")+連番(4桁)
       
       起動プロセスはgetBootProcess()から取得する。
       
      Returns:
      実行時ID
    • getBootProcess

      public static String getBootProcess()
      システムプロパティ("nablarch.bootProcess")から起動プロセスを識別する文字列を取得する。
      Returns:
      起動プロセスを識別する文字列。指定がない場合はブランク
    • createReplacementsPattern

      public static Pattern createReplacementsPattern(Set<String> replacements)
      プレースホルダ($名前$形式)検索用のパターンを作成する。
      Parameters:
      replacements - 置き換え文字($名前$形式)
      Returns:
      プレースホルダ($名前$形式)検索用のパターン
    • createFormattedLogItems

      public static <T> LogItem<T>[] createFormattedLogItems(Map<String,LogItem<T>> logItems, String format)
      フォーマット文字列からフォーマット済みのログ出力項目を生成する。
      指定されたログ出力項目のキーをプレースホルダ($名前$形式)検索用のパターンに使用する。
      Type Parameters:
      T - ログ出力項目の取得に使用するコンテキストの型
      Parameters:
      logItems - ログ出力項目
      format - フォーマット文字列
      Returns:
      フォーマット済みのログ出力項目
    • createFormattedLogItems

      public static <T> LogItem<T>[] createFormattedLogItems(Map<String,LogItem<T>> logItems, String format, Pattern pattern)
      フォーマット文字列からフォーマット済みのログ出力項目を生成する。
      プレースホルダでない固定文字列には、FixedStringItemを使用する。
      Type Parameters:
      T - ログ出力項目の取得に使用するコンテキストの型
      Parameters:
      logItems - ログ出力項目
      format - フォーマット文字列
      pattern - プレースホルダのパターン
      Returns:
      フォーマット済みのログ出力項目
    • formatMessage

      public static <T> String formatMessage(LogItem<T>[] logItems, T context)
      フォーマット済みのログ出力項目を使用してメッセージをフォーマットする。
      Type Parameters:
      T - ログ出力項目の取得に使用するコンテキストの型
      Parameters:
      logItems - フォーマット済みのログ出力項目
      context - ログ出力項目の取得に使用するコンテキスト
      Returns:
      フォーマット済みのメッセージ
    • dumpMap

      public static <T> String dumpMap(Map<String,T> map, String separator)
      マップをダンプした文字列を返す。
      Type Parameters:
      T - マップの値の型
      Parameters:
      map - マップ
      separator - マップエントリのセパレータ
      Returns:
      マップをダンプした文字列
    • dumpMap

      public static <T> String dumpMap(Map<String,T> map, String separator, Pattern excludeKeyPattern)
      マップをダンプした文字列を返す。
      Type Parameters:
      T - マップの値の型
      Parameters:
      map - マップ
      separator - マップエントリのセパレータ
      excludeKeyPattern - ダンプから除外するキーのパターン。指定しない場合はnull
      Returns:
      マップをダンプした文字列
    • dumpMap

      public static <T> String dumpMap(Map<String,T> map, String separator, LogUtil.MapValueEditor valueEditor)
      マップをダンプした文字列を返す。
      Type Parameters:
      T - マップの値の型
      Parameters:
      map - マップ
      separator - マップエントリのセパレータ
      valueEditor - LogUtil.MapValueEditor
      Returns:
      マップをダンプした文字列
    • contains

      public static boolean contains(LogItem[] logItems, Class... classes)
      フォーマット済みのログ出力項目に指定された出力項目が含まれているかを判定する。
      Parameters:
      logItems - フォーマット済みのログ出力項目
      classes - 出力項目クラス
      Returns:
      指定された出力項目が1つでも含まれている場合はtrue
    • findLogItem

      public static LogItem findLogItem(LogItem[] logItems, Class c)
      フォーマット済みのログ出力項目から指定された出力項目を検索する。
      Parameters:
      logItems - フォーマット済みのログ出力項目
      c - 出力項目クラス
      Returns:
      最初に見つかったログ出力項目。見つからない場合はnull
    • getObjectBoundToClassLoader

      public static <T> T getObjectBoundToClassLoader(LogUtil.ObjectCreator<T> creator)
      クラスローダに紐付くオブジェクトを取得する。
       カレントスレッドから取得したコンテキストクラスローダまたはその祖先のクラスローダに紐づくオブジェクトを取得する。
       クラスローダに紐付くオブジェクトが存在しない場合は、LogUtil.ObjectCreatorを使用してオブジェクトを生成し、
       カレントスレッドから取得したコンテキストクラスローダに紐付けて保持する。
       
      Type Parameters:
      T - クラスローダに紐付くオブジェクトの型
      Parameters:
      creator - クラスローダに紐付くオブジェクトを生成するLogUtil.ObjectCreator
      Returns:
      クラスローダに紐付くオブジェクト
    • removeObjectBoundToContextClassLoader

      public static <T> T removeObjectBoundToContextClassLoader(LogUtil.ObjectCreator<T> creator)
      コンテキストクラスローダに紐付くオブジェクトを削除する。
      Type Parameters:
      T - クラスローダに紐付くオブジェクトの型
      Parameters:
      creator - クラスローダに紐付くオブジェクトを生成したLogUtil.ObjectCreator
      Returns:
      削除したオブジェクト。コンテキストクラスローダに紐付くオブジェクトが存在しない場合はnull
    • removeAllObjectsBoundToContextClassLoader

      public static void removeAllObjectsBoundToContextClassLoader()
      コンテキストクラスローダに紐付く全てのオブジェクトを削除する。