JavaA2Z

KAB-studio > プログラミング > JavaA2Z > Loggerとは

Logger

日本語 日誌書き
英語 logger
ふりがな ろがー
フリガナ ロガー

解説

ログを残すクラスロガー
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.util.logging.Logger。
 
ログを残すためのクラス
標準エラー出力へのログ出力を標準で持つ。
出力先はjava.util.logging.Handlerクラスの任意のサブクラスをLoggerクラスのaddHandler()メソッドに追加することで複数の出力先を設定できる。またこのクラスjava.util.logging.Formatterクラスの任意のサブクラスをsetFormatter()メソッドでセットすることで任意の出力形式にすることができる。
ログ出力はLoggerクラスのlog()メソッドう。その際、第1引数で出力レベルを設定する。出力レベルの設定を省く場合にはsevere()メソッドやinfo()メソッド等を使用する。出力レベルの上限の設定はsetLevel()メソッドを使用する。
 
このように、Loggerクラスプログラム上でハンドラや出力レベルの上限設定をうため、あとで設定を変更することができないというデメリットがある。汎用性を考えればLog4jの方がいいだろう。
 
また、Log4jを含めて、ログクラスのほとんどは「Logger」というクラス名のため、一般に「Logger」というクラス名であっても実際のクラスは異なる場合も多い。
java.util.logging.Loggerクラスは前述のようにあまり使い勝手が良くないため、一般の意味でも「Logger」がjava.util.logging.Loggerクラスを指すとは限らない。文脈やパッケージを確認するのがいいだろう。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.io.IOException;
import java.util.logging.Logger;
import java.util.logging.FileHandler;
import java.util.logging.SimpleFormatter;

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // ログ名を指定してログクラスを作ります。
            // 通常は、1クラスにつき1ロガーなので、クラス名を付けます。
            Logger logger = Logger.getLogger( "Sample" );
            // ログファイルに出力するために、FileHandlerクラスを使用します。
            // 出力ファイル名はlog.txtです。
            FileHandler handler = new FileHandler( "log.txt" );
            // 普通に出力するのでSimpleFormatterクラスを使用します。
            handler.setFormatter( new SimpleFormatter() );
            // 出力先としてhandlerを追加します。
            logger.addHandler( handler );

            // INFOレベルのログを出力します。
            logger.info( "ログ出力します。" );
            // 2005/06/23 14:51:06 Sample main
            // 情報: ログを出力します。

            // Loggerクラスには最初から標準エラー出力への出力が入っているので
            // 標準エラー出力にも出力されています。

            // 同時に、log.txtが実行時のカレントディレクトリにも作られ、
            // その中に同様の出力がされているはずです。
            // ログファイルは毎回作り直されるので注意。追記ではありません。
        }
        catch( IOException e )
        {
            // FileHandlerクラスのコンストラクタで指定したファイルが
            // 作れなかったら、例外が投げられます。
            e.printStackTrace();
        }

        // 一番簡単なログの使い方。
        Logger.global.info( "ログを出力します。" );
        // 2005/06/23 14:51:06 Sample main
        // 情報: ログを出力します。

        // このように、Loggerクラスのglobalフィールドを使うと
        // 簡単に標準エラー出力にログ出力できます。
    }
}
// Sample.java
import java.io.IOException;
import java.util.logging.Logger;
import java.util.logging.FileHandler;
import java.util.logging.SimpleFormatter;

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // ログ名を指定してログクラスを作ります。
            // 通常は、1クラスにつき1ロガーなので、クラス名を付けます。
            Logger logger = Logger.getLogger( "Sample" );
            // ログファイルに出力するために、FileHandlerクラスを使用します。
            // 出力ファイル名はlog.txtです。
            FileHandler handler = new FileHandler( "log.txt" );
            // 普通に出力するのでSimpleFormatterクラスを使用します。
            handler.setFormatter( new SimpleFormatter() );
            // 出力先としてhandlerを追加します。
            logger.addHandler( handler );

            // INFOレベルのログを出力します。
            logger.info( "ログ出力します。" );
            // 2005/06/23 14:51:06 Sample main
            // 情報: ログを出力します。

            // Loggerクラスには最初から標準エラー出力への出力が入っているので
            // 標準エラー出力にも出力されています。

            // 同時に、log.txtが実行時のカレントディレクトリにも作られ、
            // その中に同様の出力がされているはずです。
            // ログファイルは毎回作り直されるので注意。追記ではありません。
        }
        catch( IOException e )
        {
            // FileHandlerクラスのコンストラクタで指定したファイルが
            // 作れなかったら、例外が投げられます。
            e.printStackTrace();
        }

        // 一番簡単なログの使い方。
        Logger.global.info( "ログを出力します。" );
        // 2005/06/23 14:51:06 Sample main
        // 情報: ログを出力します。

        // このように、Loggerクラスのglobalフィールドを使うと
        // 簡単に標準エラー出力にログ出力できます。
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/06/23
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。