クラスFileHandler
Handler。
FileHandlerは、指定されたファイルに書き込むか、ローテーションするファイル・セットに書き込むことができます。
ファイルのローテーション・セットの場合、各ファイルが指定されたサイズの限度に到達すると、そのファイルが閉じられ、交換して新しいファイルが開かれます。 続いて、「0」、「1」、「2」などを基本ファイル名に追加することで、古いファイルの名前が付けられます。
デフォルトで、バッファリングは入出力ライブラリで使用可能ですが、各ログ・レコードは完了時にフラッシュされます。
デフォルトでは、XMLFormatterクラスが書式設定に使用されます。
構成: デフォルトでは、各FileHandlerは、次のLogManager構成プロパティを使用して初期化されます。<handler-name>は、ハンドラの完全修飾クラス名を示します。 プロパティが未定義である場合(または無効な値を持つ場合)、指定されたデフォルト値が使用されます。
- <handler-name>.levelは、
Handler(デフォルトはLevel.ALLです)のデフォルト・レベルを指定します。 - <handler-name>.filterは、(デフォルトは
Filterではありません)を使用するFilterクラスの名前を指定します。 - <handler-name>.formatterは、(デフォルトは
java.util.logging.XMLFormatterです)を使用するFormatterクラスの名前を指定 - <handler-name>.encodingは使用する文字セット・エンコーディングの名前を指定します(デフォルトは、デフォルト・プラットフォームのエンコーディング)。
- <handler-name>.limitは任意の1ファイルに書き込むおおよその最大量(バイト)を指定します。 これがゼロの場合は無制限となる。 (デフォルトは無制限)
- <handler-name>.countは循環する出力ファイル数を指定します(デフォルトは1)。
- <handler-name>.patternは出力ファイル名を生成するためのパターンを指定します。 詳細は下記を参照。 (デフォルトは「%h/java%u.log」)
- <handler-name>.appendはFileHandlerが任意の既存のファイルに追加するかどうかを指定します(デフォルトはfalse)。
- <handler-name>.maxLocksは、FileHandler (デフォルトは100)によって保持される同時ロックの最大数を指定します。
たとえば、FileHandlerのプロパティは次のようになります。
- java.util.logging.FileHandler.level=INFO
- java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
カスタム・ハンドラ(例: com.foo.MyHandler)の場合、プロパティは次のようになります。
- com.foo.MyHandler.level=INFO
- com.foo.MyHandler.formatter=java.util.logging.SimpleFormatter
パターンは、実行時に置き換えられる、次の特殊コンポーネントを含む文字列から構成されます。
- "/"ローカル・パス名の区切り文字
- "%t"システムの一時ディレクトリ
- "%h" user.homeシステム・プロパティの値
- "%g"ログのローテーションを識別する生成番号
- "%u"重複を解決する一意の番号
- "%%"単一のパーセント符号%に変換
このように、たとえばカウント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(String pattern) FileHandlerを初期化して、指定されたファイル名に書き込みます。FileHandler(String pattern, boolean append) FileHandlerを初期化して指定のファイル名に書き込みます(オプションの追加)。FileHandler(String pattern, int limit, int count) FileHandlerを初期化して、一連のファイルに書き込みます。FileHandler(String pattern, int limit, int count, boolean append) FileHandlerを初期化して、オプションのappendを使用して一連のファイルに書き込みます。FileHandler(String pattern, long limit, int count, boolean append) FileHandlerを初期化して、オプションのappendを使用して一連のファイルに書き込みます。 -
メソッドのサマリー
クラスjava.util.logging.StreamHandlerで宣言されたメソッド
flush, isLoggable, setEncoding, setOutputStreamクラスjava.util.logging.Handlerで宣言されたメソッド
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
-
コンストラクタの詳細
-
FileHandler
public FileHandler() throws IOExceptionデフォルトのFileHandlerを作成します。 これは、LogManagerプロパティ(またはデフォルト値)から完全に構成されます。- スロー:
IOException- ファイルを開くときに入出力の問題が発生した場合。NullPointerException- patternプロパティが空の文字列である場合。
-
FileHandler
public FileHandler(String pattern) throws IOException FileHandlerを初期化して、指定されたファイル名に書き込みます。FileHandlerは、指定されたパターン引数がファイル名パターンとして使用され、ファイル制限が制限なしに設定され、ファイル数が1に設定されることを除き、LogManagerプロパティ(またはデフォルト値)に基づいて構成されます。書き込まれるデータの総量に制限がないので、注意して使用してください。
- パラメータ:
pattern- 出力ファイルの名前- スロー:
IOException- ファイルを開くときに入出力の問題が発生した場合。IllegalArgumentException- patternが空の文字列である場合
-
FileHandler
public FileHandler(String pattern, boolean append) throws IOException FileHandlerを初期化して指定のファイル名に書き込みます(オプションの追加)。FileHandlerは、指定されたパターン引数がファイル名パターンとして使用され、ファイル制限が制限なしに設定され、ファイル数が1に設定され、追加モードが指定されたappend引数に設定されていることを除き、LogManagerプロパティ(またはデフォルト値)に基づいて構成されます。書き込まれるデータの総量に制限がないので、注意して使用してください。
- パラメータ:
pattern- 出力ファイルの名前append- 追加モードを指定する- スロー:
IOException- ファイルを開くときに入出力の問題が発生した場合。IllegalArgumentException- patternが空の文字列である場合
-
FileHandler
public FileHandler(String pattern, int limit, int count) throws IOException FileHandlerを初期化して、一連のファイルに書き込みます。 1つのファイルに指定されたおよその制限量まで書き込まれると、別のファイルが開かれます。 出力先は、count個の一連のファイルの間で循環します。FileHandlerは、指定されたパターン引数がファイル名パターンとして使用され、ファイル制限が制限引数に設定され、ファイル数が指定されたcount引数に設定されることを除き、LogManagerプロパティ(またはデフォルト値)に基づいて構成されます。カウントは少なくとも1である必要があります。
- パラメータ:
pattern- 出力ファイルの名前付けのパターンlimit- 任意の1つのファイルに書き込む最大バイト数count- 使用するファイル数- スロー:
IOException- ファイルを開くときに入出力の問題が発生した場合。IllegalArgumentException-limit < 0またはcount < 1の場合。IllegalArgumentException- patternが空の文字列である場合
-
FileHandler
public FileHandler(String pattern, int limit, int count, boolean append) throws IOException FileHandlerを初期化して、オプションのappendを使用して一連のファイルに書き込みます。 1つのファイルに指定されたおよその制限量まで書き込まれると、別のファイルが開かれます。 出力先は、count個の一連のファイルの間で循環します。FileHandlerは、指定されたパターン引数がファイル名パターンとして使用され、ファイル制限が制限引数に設定され、ファイル数が指定されたカウント引数に設定され、追加モードが指定されたappend引数に設定されることを除き、LogManagerプロパティ(またはデフォルト値)に基づいて構成されます。カウントは少なくとも1である必要があります。
- パラメータ:
pattern- 出力ファイルの名前付けのパターンlimit- 任意の1つのファイルに書き込む最大バイト数count- 使用するファイル数append- 追加モードを指定する- スロー:
IOException- ファイルを開くときに入出力の問題が発生した場合。IllegalArgumentException-limit < 0またはcount < 1の場合。IllegalArgumentException- patternが空の文字列である場合
-
FileHandler
public FileHandler(String pattern, long limit, int count, boolean append) throws IOException FileHandlerを初期化して、オプションのappendを使用して一連のファイルに書き込みます。 1つのファイルに指定されたおよその制限量まで書き込まれると、別のファイルが開かれます。 出力先は、count個の一連のファイルの間で循環します。FileHandlerは、指定されたパターン引数がファイル名パターンとして使用され、ファイル制限が制限引数に設定され、ファイル数が指定されたカウント引数に設定され、追加モードが指定されたappend引数に設定されることを除き、LogManagerプロパティ(またはデフォルト値)に基づいて構成されます。カウントは少なくとも1である必要があります。
- パラメータ:
pattern- 出力ファイルの名前付けのパターンlimit- 任意の1つのファイルに書き込む最大バイト数count- 使用するファイル数append- 追加モードを指定する- スロー:
IOException- ファイルを開くときに入出力の問題が発生した場合。IllegalArgumentException-limit < 0またはcount < 1の場合。IllegalArgumentException- patternが空の文字列である場合- 導入されたバージョン:
- 9
-
-
メソッドの詳細
-
publish
public void publish(LogRecord record) LogRecordを書式設定して公開します。- オーバーライド:
publish、クラスStreamHandler- パラメータ:
record- ログ・イベントの説明。 nullレコードは何の通知もなく無視され、発行されない
-
close
-