public class FileHandler extends StreamHandler
FileHandlerでは、指定されたファイル、またはファイルのローテーション・セットのいずれかに書き込むことができます。
ファイルのローテーション・セットの場合、各ファイルが指定されたサイズの限度に到達すると、そのファイルが閉じられ、交換して新しいファイルが開かれます。続いて、「0」、「1」、「2」などを基本ファイル名に追加することで、古いファイルの名前が付けられます。
デフォルトで、バッファリングは入出力ライブラリで使用可能ですが、各ログ・レコードは完了時にフラッシュされます。
デフォルトで、XMLFormatterクラスはフォーマット処理に使用されます。
構成: デフォルトで各FileHandlerは次のLogManager構成プロパティを使用して初期化されます。ここで<handler-name>はハンドラの完全修飾クラス名を示します。プロパティが未定義である場合(または無効な値を持つ場合)、指定されたデフォルト値が使用されます。
たとえば、FileHandler
のプロパティは次のようになります。
カスタム・ハンドラ(例: com.foo.MyHandler)の場合、プロパティは次のようになります。
パターンは、実行時に置き換えられる、次の特殊コンポーネントを含む文字列から構成されます。
このように、たとえばカウント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, 2014, Oracle and/or its affiliates. All rights reserved.