public class FileHandler extends StreamHandler
FileHandler では、指定されたファイル、またはファイルのローテーションセットのいずれかに書き込むことができます。
ファイルのローテーションセットの場合、各ファイルが指定されたサイズの限度に到達すると、そのファイルが閉じられ、交換して新しいファイルが開かれます。続いて、「0」、「1」、「2」などを基本ファイル名に追加することで、古いファイルの名前が付けられます。
デフォルトで、バッファリングは入出力ライブラリで使用可能ですが、各ログレコードは完了時にフラッシュされます。
デフォルトで、XMLFormatter クラスはフォーマット処理に使用されます。
構成: 各 FileHandler はデフォルトで、次の LogManager 構成プロパティーを使って初期化されます。プロパティーが未定義である場合 (または無効な値を持つ場合)、指定されたデフォルト値が使用されます。
パターンは、実行時に置き換えられる、次の特殊コンポーネントを含む文字列から構成されます。
このように、たとえばカウント 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 の使用は、ローカルディスクのファイルシステム使用時にのみ、確実な動作が保証されることに注意してください。
コンストラクタと説明 |
---|
FileHandler()
デフォルトの 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 を初期化します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
close()
すべてのファイルを閉じます。
|
void |
publish(LogRecord record)
LogRecord をフォーマットして発行します。
|
flush, isLoggable, setEncoding, setOutputStream
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
public FileHandler() throws IOException, SecurityException
IOException
- ファイルを開くときに入出力の問題が発生した場合。SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control")) を持っていない場合。NullPointerException
- pattern プロパティーが空の文字列である場合。public FileHandler(String pattern) throws IOException, SecurityException
指定されたパターンの引数がファイル名のパターンとして使用され、ファイルの制限が制限なしに設定され、ファイルカウントが 1 に設定されている場合以外は、FileHandler は、LogManager プロパティー (またはそのデフォルト値) に基づいて構成されます。
書き込まれるデータの総量に制限がないので、注意して使用してください。
pattern
- 出力ファイルの名前IOException
- ファイルを開くときに入出力の問題が発生した場合。SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。IllegalArgumentException
- pattern が空の文字列である場合public FileHandler(String pattern, boolean append) throws IOException, SecurityException
指定されたパターンの引数がファイル名のパターンとして使用され、ファイルの制限が制限なしに設定され、ファイルカウントが 1 に設定され、追加モードの指定された append 引数に設定されている場合以外は、FileHandler は、LogManager プロパティー (またはそのデフォルト値) に基づいて構成されます。
書き込まれるデータの総量に制限がないので、注意して使用してください。
pattern
- 出力ファイルの名前append
- 追加モードを指定するIOException
- ファイルを開くときに入出力の問題が発生した場合。SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。IllegalArgumentException
- pattern が空の文字列である場合public FileHandler(String pattern, int limit, int count) throws IOException, SecurityException
指定されたパターンの引数がファイル名のパターンとして使用され、ファイルの制限が limit 引数に設定され、ファイルカウントが指定された count 引数に設定されている場合以外は、FileHandler は、LogManager プロパティー (またはそのデフォルト値) に基づいて構成されます。
カウントは少なくとも 1 である必要があります。
pattern
- 出力ファイルの名前付けのパターンlimit
- 任意の 1 つのファイルに書き込む最大バイト数count
- 使用するファイル数IOException
- ファイルを開くときに入出力の問題が発生した場合。SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。IllegalArgumentException
- limit < 0、または count < 1 の場合。IllegalArgumentException
- pattern が空の文字列である場合public FileHandler(String pattern, int limit, int count, boolean append) throws IOException, SecurityException
指定されたパターンの引数がファイル名のパターンとして使用され、ファイルの制限が limit 引数に設定され、ファイルカウントが指定された count 引数に設定され、追加モードが指定された append 引数に設定されている場合以外は、FileHandler は、LogManager プロパティー (またはそのデフォルト値) に基づいて構成されます。
カウントは少なくとも 1 である必要があります。
pattern
- 出力ファイルの名前付けのパターンlimit
- 任意の 1 つのファイルに書き込む最大バイト数count
- 使用するファイル数append
- 追加モードを指定するIOException
- ファイルを開くときに入出力の問題が発生した場合。SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。IllegalArgumentException
- limit < 0、または count < 1 の場合。IllegalArgumentException
- pattern が空の文字列である場合public void publish(LogRecord record)
publish
、クラス: StreamHandler
record
- ログイベントの説明。null レコードは何の通知もなく無視され、発行されないpublic void close() throws SecurityException
close
、クラス: StreamHandler
SecurityException
- セキュリティーマネージャーが存在する場合で、呼び出し元が LoggingPermission("control") を持っていない場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.