public class FileHandler
extends StreamHandler
java.lang.Object | |||
↳ | java.util.logging.Handler | ||
↳ | java.util.logging.StreamHandler | ||
↳ | java.util.logging.FileHandler |
简单的文件记录 Handler 。
FileHandler可以写入指定的文件,也可以写入一组旋转的文件。
对于一组旋转的文件,当每个文件达到给定的大小限制时,它将被关闭,旋出,并打开一个新文件。 通过将“0”,“1”,“2”等添加到基本文件名中,相继更旧的文件被命名。
默认情况下,IO库中启用了缓冲,但每个日志记录完成后都会刷新。
默认情况下, 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”字段,它将在文件名的末尾添加一个点。 (这将在任何自动添加的世代号后面。)
因此,如果三个进程都尝试登录到fred%u。%g.txt,那么他们最终可能会使用fred0.0.txt,fred1.0.txt,fred2.0.txt作为其旋转序列中的第一个文件。
请注意,只有在使用本地磁盘文件系统时,才能保证使用唯一标识符来避免冲突。
Public constructors |
|
---|---|
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以写入一组带有可选append的文件。 |
Public methods |
|
---|---|
void |
close() 关闭所有文件。 |
void |
publish(LogRecord record) 格式并发布 LogRecord 。 |
Inherited methods |
|
---|---|
From class java.util.logging.StreamHandler
|
|
From class java.util.logging.Handler
|
|
From class java.lang.Object
|
FileHandler ()
构建一个默认的FileHandler 。 这将完全由LogManager属性(或其默认值)进行配置。
Throws | |
---|---|
IOException |
if there are IO problems opening the files. |
SecurityException |
if a security manager exists and if the caller does not have LoggingPermission("control")). |
NullPointerException |
if pattern property is an empty String. |
FileHandler (String pattern)
初始化一个 FileHandler以写入给定的文件名。
FileHandler基于 LogManager属性(或其默认值)进行配置,但将给定模式参数用作文件名模式,文件限制设置为无限制,并将文件计数设置为1。
可写入的数据量没有限制,因此请谨慎使用。
Parameters | |
---|---|
pattern |
String : the name of the output file |
Throws | |
---|---|
IOException |
if there are IO problems opening the files. |
SecurityException |
if a security manager exists and if the caller does not have LoggingPermission("control"). |
IllegalArgumentException |
if pattern is an empty string |
FileHandler (String pattern, boolean append)
初始化 FileHandler以写入给定的文件名,并带有可选的追加。
FileHandler是基于 LogManager属性(或其默认值)配置的,除了给定的模式参数用作文件名模式,文件限制设置为无限制,文件计数设置为1,并且设置了追加模式到给定的 append参数。
可写入的数据量没有限制,因此请谨慎使用。
Parameters | |
---|---|
pattern |
String : the name of the output file |
append |
boolean : specifies append mode |
Throws | |
---|---|
IOException |
if there are IO problems opening the files. |
SecurityException |
if a security manager exists and if the caller does not have LoggingPermission("control"). |
IllegalArgumentException |
if pattern is an empty string |
FileHandler (String pattern, int limit, int count)
初始化FileHandler以写入一组文件。 当(近似)将给定限制写入一个文件时,将打开另一个文件。 输出将循环通过一组计数文件。
FileHandler是基于 LogManager属性(或其默认值)配置的,除了将给定的模式参数用作文件名模式,将文件限制设置为limit参数,并将文件计数设置为给定的count参数。
计数必须至少为1。
Parameters | |
---|---|
pattern |
String : the pattern for naming the output file |
limit |
int : the maximum number of bytes to write to any one file |
count |
int : the number of files to use |
Throws | |
---|---|
IOException |
if there are IO problems opening the files. |
SecurityException |
if a security manager exists and if the caller does not have LoggingPermission("control"). |
IllegalArgumentException |
if limit < 0, or count < 1. |
IllegalArgumentException |
if pattern is an empty string |
FileHandler (String pattern, int limit, int count, boolean append)
初始化一个FileHandler以写入一组带有可选append的文件。 当(近似)将给定限制写入一个文件时,将打开另一个文件。 输出将循环通过一组计数文件。
FileHandler是基于 LogManager属性(或其默认值)配置的,除了将给定的模式参数用作文件名模式,将文件限制设置为limit参数,并将文件计数设置为给定的count参数以及追加模式设置为给定的 append参数。
计数必须至少为1。
Parameters | |
---|---|
pattern |
String : the pattern for naming the output file |
limit |
int : the maximum number of bytes to write to any one file |
count |
int : the number of files to use |
append |
boolean : specifies append mode |
Throws | |
---|---|
IOException |
if there are IO problems opening the files. |
SecurityException |
if a security manager exists and if the caller does not have LoggingPermission("control"). |
IllegalArgumentException |
if limit < 0, or count < 1. |
IllegalArgumentException |
if pattern is an empty string |
void close ()
关闭所有文件。
Throws | |
---|---|
SecurityException |
if a security manager exists and if the caller does not have LoggingPermission("control"). |
void publish (LogRecord record)
格式和发布 LogRecord 。
Parameters | |
---|---|
record |
LogRecord : description of the log event. A null record is silently ignored and is not published |