JavaTM Platform
Standard Ed. 6

java.util.logging
クラス FileHandler

java.lang.Object
  上位を拡張 java.util.logging.Handler
      上位を拡張 java.util.logging.StreamHandler
          上位を拡張 java.util.logging.FileHandler

public class FileHandler
extends StreamHandler

単純ファイルのロギング Handler です。

FileHandler では、指定されたファイル、またはファイルのローテーションセットのいずれかに書き込むことができます。

ファイルのローテーションセットの場合、各ファイルが指定されたサイズの限度に到達すると、そのファイルが閉じられ、交換して新しいファイルが開かれます。続いて、「0」、「1」、「2」などを基本ファイル名に追加することで、古いファイルの名前が付けられます。

デフォルトで、バッファリングは入出力ライブラリで使用可能ですが、各ログレコードは完了時にフラッシュされます。

デフォルトで、XMLFormatter クラスはフォーマット処理に使用されます。

構成:FileHandler はデフォルトで、次の LogManager 構成プロパティーを使って初期化されます。プロパティーが未定義である場合 (または無効な値を持つ場合)、指定されたデフォルト値が使用されます。

パターンは、実行時に置き換えられる、次の特殊コンポーネントを含む文字列から構成されます。

"%g" フィールドが指定されず、ファイルカウントが 1 より大きい場合、生成されたファイル名の末尾のドットのあとに生成番号が追加されます。  

このように、たとえばカウント 2 を持つパターン 「%t/java%g.log」 では、通常ログファイルを Solaris の場合は /var/tmp/java0.log と /var/tmp/java1.log に書き込み、一方、通常 Windows 95 の場合は C:\TEMP\java0.log と C:\TEMP\java1.log に書き込みます。 

生成番号は 0、1、2 のような連続番号になります。 

通常、一意フィールド「%u」は 0 に設定されます。ただし、FileHandler は、ファイル名を開こうとした時にそのファイルを別のプロセスが現在使用中であることが判明した場合には、その一意番号フィールドを増分して再度試みます。これが、現在使用されていないファイル名を FileHandler が見つけるまで繰り返されます。重複があり、「%u」フィールドが指定されない場合、ファイル名の末尾のドットのあとに追加されます。これは自動的に追加される生成番号のあとになります。

このため、 3 つのプロセスのすべてが fred%u.%g.txt にログを記録しようとする場合、プロセスのローテーションの順番に従って、最初のファイルとして fred0.0.txt、fred1.0.txt、fred2.0.txt を使用することになります。

重複を一意の ID の使用が、ローカルディスクのファイルシステム使用時に確実に動作するよう、単に保証されることに注意してください。

導入されたバージョン:
1.4

コンストラクタの概要
FileHandler()
          デフォルトの FileHandler を構築します。
FileHandler(String pattern)
          指定されたファイル名に書き込むように FileHandler を初期化します。
FileHandler(String pattern, boolean append)
          オプションの追加モードで、指定されたファイル名を書き込む。
FileHandler(String pattern, int limit, int count)
          一連のファイルに書き込むように FileHandler を初期化します。
FileHandler(String pattern, int limit, int count, boolean append)
          省略可能な追加モードで一連のファイルに書き込むように FileHandler を初期化します。
 
メソッドの概要
 void close()
          すべてのファイルを閉じます。
 void publish(LogRecord record)
          LogRecord をフォーマットして発行します。
 
クラス java.util.logging.StreamHandler から継承されたメソッド
flush, isLoggable, setEncoding, setOutputStream
 
クラス java.util.logging.Handler から継承されたメソッド
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

FileHandler

public FileHandler()
            throws IOException,
                   SecurityException
デフォルトの FileHandler を構築します。これは常に LogManager プロパティー (またはそのデフォルト値) から構成されます。

例外:
IOException - ファイルを開くときに入出力の問題が発生した場合
SecurityException - セキュリティーマネージャーが存在し、呼び出し元が LoggingPermission("control")) を持たない場合
NullPointerException - pattern プロパティーが空の文字列である場合

FileHandler

public FileHandler(String pattern)
            throws IOException,
                   SecurityException
指定されたファイル名に書き込むように FileHandler を初期化します。

指定されたパターンの引数がファイル名のパターンとして使用され、ファイルの制限が制限なしに設定され、ファイルカウントが 1 に設定されている場合以外は、FileHandler は、LogManager プロパティー (またはそのデフォルト値) に基づいて構成されます。

書き込まれるデータの総量に制限がないので、注意して使用してください。

パラメータ:
pattern - 出力ファイルの名前
例外:
IOException - ファイルを開くときに入出力の問題が発生した場合
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合
IllegalArgumentException - pattern が空の文字列である場合

FileHandler

public FileHandler(String pattern,
                   boolean append)
            throws IOException,
                   SecurityException
オプションの追加モードで、指定されたファイル名を書き込む。FileHandler を初期化してます。

指定されたパターンの引数がファイル名のパターンとして使用され、ファイルの制限が制限なしに設定され、ファイルカウントが 1 に設定され、追加モードの指定された append 引数に設定されている場合以外は、FileHandler は、LogManager プロパティー (またはそのデフォルト値) に基づいて構成されます。

書き込まれるデータの総量に制限がないので、注意して使用してください。

パラメータ:
pattern - 出力ファイルの名前
append - 追加モードを指定する
例外:
IOException - ファイルを開くときに入出力の問題が発生した場合
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合
IllegalArgumentException - pattern が空の文字列である場合

FileHandler

public FileHandler(String pattern,
                   int limit,
                   int count)
            throws IOException,
                   SecurityException
一連のファイルに書き込むように FileHandler を初期化します。1 つのファイルに指定されたおよその制限量まで書き込まれると、別のファイルが開かれます。出力先は、count 個の一連のファイルの間で循環します。

指定されたパターンの引数がファイル名のパターンとして使用され、ファイルの制限が制限引数に設定され、ファイルカウントが指定された count 引数に設定されている場合以外は、FileHandler は、LogManager プロパティー (またはそのデフォルト値) に基づいて構成されます。

カウントは少なくとも 1 である必要があります。

パラメータ:
pattern - 出力ファイルの名前付けのパターン
limit - 任意の 1 つのファイルに書き込む最大バイト数
count - 使用するファイル数
例外:
IOException - ファイルを開くときに入出力の問題が発生した場合
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合
IllegalArgumentException - limit < 0、または count < 1 の場合
IllegalArgumentException - pattern が空の文字列である場合

FileHandler

public FileHandler(String pattern,
                   int limit,
                   int count,
                   boolean append)
            throws IOException,
                   SecurityException
省略可能な追加モードで一連のファイルに書き込むように FileHandler を初期化します。1 つのファイルに指定されたおよその制限量まで書き込まれると、別のファイルが開かれます。出力先は、count 個の一連のファイルの間で循環します。

指定されたパターンの引数がファイル名のパターンとして使用され、ファイルの制限が制限引数に設定され、ファイルカウントが指定された count 引数に設定され、追加モードが指定された append 引数に設定されている場合以外は、FileHandler は、LogManager プロパティー (またはそのデフォルト値) に基づいて構成されます。

カウントは少なくとも 1 である必要があります。

パラメータ:
pattern - 出力ファイルの名前付けのパターン
limit - 任意の 1 つのファイルに書き込む最大バイト数
count - 使用するファイル数
append - 追加モードを指定する
例外:
IOException - ファイルを開くときに入出力の問題が発生した場合
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合
IllegalArgumentException - limit < 0、または count < 1 の場合
IllegalArgumentException - pattern が空の文字列である場合
メソッドの詳細

publish

public void publish(LogRecord record)
LogRecord をフォーマットして発行します。

オーバーライド:
クラス StreamHandler 内の publish
パラメータ:
record - ログイベントの説明。null レコードは何の通知もなく無視され、発行されない

close

public void close()
           throws SecurityException
すべてのファイルを閉じます。

オーバーライド:
クラス StreamHandler 内の close
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。