- 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”等添加到基本文件名中来命名。
默认情况下,IO库中启用了缓存,但是每个日志记录在完成后才会被刷新。
默认情况下,
XMLFormatter类用于格式化。配置:默认情况下,每个
FileHandler都使用以下LogManager配置属性进行初始化,其中<handler-name>引用处理程序的完全限定类名。 如果未定义属性(或具有无效值),则使用指定的默认值。-  <处理程序名> .LEVEL指定了默认级别
Handler(默认为Level.ALL)。 -  <处理程序名> .filter指定的名称
Filter类中使用(默认为无Filter)。 -  <处理程序名> .formatter指定的名称
Formatter使用(默认为classjava.util.logging.XMLFormatter) - <handler-name>。编码要使用的字符集编码的名称(默认为默认平台编码)。
 - <handler-name> .limit指定要写入的大致最大数量(以字节为单位)到任何一个文件。 如果这是零,那么没有限制。 (默认为无限制)。
 - <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”字段,则会在文件名的末尾添加点。 (这将是任何自动添加的代号之后)。因此,如果三个进程都尝试登录到fred%u。%g.txt,那么他们可能会使用fred0.0.txt,fred1.0.txt,fred2.0.txt作为其旋转序列中的第一个文件。
请注意,使用唯一的ids来避免冲突只能保证在使用本地磁盘文件系统时可靠地工作。
- 从以下版本开始:
 - 1.4
 
 -  <处理程序名> .LEVEL指定了默认级别
 
-  
        
       
-  
             
构造方法摘要
构造方法 Constructor 描述 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以写入一组可选附加的文件。FileHandler(String pattern, long limit, int count, boolean append)初始化一个FileHandler以写入一组可选附加的文件。 
-  
             
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidclose()关闭所有文件。voidpublish(LogRecord record)格式化并发布LogRecord。-  
               
Methods inherited from class java.util.logging.Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel 
-  
               
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
-  
               
Methods inherited from class java.util.logging.StreamHandler
flush, isLoggable, setEncoding, setOutputStream 
 -  
               
 
 -  
             
 
-  
        
       
-  
             
构造方法详细信息
-  
FileHandler
public FileHandler() throws IOException, SecurityException构造默认值FileHandler。 这将完全由LogManager属性(或其默认值)配置。- 异常
 -  
              
IOException- 如果打开文件时有IO问题。 -  
              
SecurityException- 如果安全管理器存在,并且呼叫者没有LoggingPermission("control"))。 -  
              
NullPointerException- 如果pattern属性是一个空字符串。 
 
-  
FileHandler
public FileHandler(String pattern) throws IOException, SecurityException
初始化FileHandler以写入给定的文件名。FileHandler是基于LogManager属性(或其默认值)配置的,除了给定的模式参数用作文件名模式,文件限制设置为无限制,文件数设置为1。可能写入的数据量没有限制,因此请谨慎使用。
- 参数
 -  
              
pattern- 输出文件的名称 - 异常
 -  
              
IOException- 如果存在打开文件的IO问题。 -  
              
SecurityException- 如果安全管理器存在,并且呼叫者没有LoggingPermission("control")。 -  
              
IllegalArgumentException- 如果pattern是一个空字符串 
 
-  
FileHandler
public FileHandler(String pattern, boolean append) throws IOException, SecurityException
初始化一个FileHandler以写入给定的文件名,可选附加。FileHandler是基于LogManager属性(或其默认值)配置的,除了使用给定的模式参数作为文件名模式,文件限制设置为无限制,文件数设置为1,并设置追加模式到给定的append参数。可能写入的数据量没有限制,因此请谨慎使用。
- 参数
 -  
              
pattern- 输出文件的名称 -  
              
append- 指定追加模式 - 异常
 -  
              
IOException- 如果打开文件时有IO问题。 -  
              
SecurityException- 如果存在安全管理员,并且呼叫者没有LoggingPermission("control")。 -  
              
IllegalArgumentException- 如果pattern是空字符串 
 
-  
FileHandler
public FileHandler(String pattern, int limit, int count) throws IOException, SecurityException
初始化FileHandler以写入一组文件。 当(大约)给定的限制已写入一个文件时,将打开另一个文件。 输出将循环通过一组计数文件。FileHandler基于LogManager属性(或其默认值)进行配置,除了给定的模式参数用作文件名模式,文件限制设置为limit参数,文件计数设置为给定的计数参数。计数必须至少为1。
- 参数
 -  
              
pattern- 命名输出文件的模式 -  
              
limit- 写入任何一个文件的最大字节数 -  
              
count- 要使用的文件数 - 异常
 -  
              
IOException- 如果打开文件时有IO问题。 -  
              
SecurityException- 如果安全管理器存在,并且呼叫者没有LoggingPermission("control")。 -  
              
IllegalArgumentException- 如果是limit < 0,或者是count < 1。 -  
              
IllegalArgumentException- 如果模式是空字符串 
 
-  
FileHandler
public FileHandler(String pattern, int limit, int count, boolean append) throws IOException, SecurityException
初始化FileHandler以写入一组可选的附加文件。 当(大约)给定的限制已写入一个文件时,将打开另一个文件。 输出将循环通过一组计数文件。FileHandler是基于LogManager属性(或其默认值)配置的,除了给定的模式参数用作文件名模式,文件限制设置为limit参数,文件数设置为给定的计数参数,追加模式设置为给定的append参数。计数必须至少为1。
- 参数
 -  
              
pattern- 命名输出文件的模式 -  
              
limit- 写入任何一个文件的最大字节数 -  
              
count- 要使用的文件数 -  
              
append- 指定追加模式 - 异常
 -  
              
IOException- 如果打开文件时有IO问题。 -  
              
SecurityException- 如果安全管理器存在,并且主叫方没有LoggingPermission("control")。 -  
              
IllegalArgumentException- 如果是limit < 0或count < 1。 -  
              
IllegalArgumentException- 如果pattern是空字符串 
 
-  
FileHandler
public FileHandler(String pattern, long limit, int count, boolean append) throws IOException
初始化一个FileHandler写入一组可选附加的文件。 当(大约)给定的限制已写入一个文件时,将打开另一个文件。 输出将循环通过一组计数文件。FileHandler是基于LogManager属性(或其默认值)配置的,除了给定的模式参数用作文件名模式,文件限制设置为limit参数,文件数设置为给定的计数参数,追加模式设置为给定的append参数。计数必须至少为1。
- 参数
 -  
              
pattern- 命名输出文件的模式 -  
              
limit- 要写入任何一个文件的最大字节数 -  
              
count- 要使用的文件数 -  
              
append- 指定追加模式 - 异常
 -  
              
IOException- 如果打开文件时有IO问题。 -  
              
SecurityException- 如果安全管理器存在,并且呼叫者没有LoggingPermission("control")。 -  
              
IllegalArgumentException- 如果是limit < 0,或者是count < 1。 -  
              
IllegalArgumentException- 如果pattern是一个空字符串 - 从以下版本开始:
 - 9
 
 
 -  
 
-  
             
方法详细信息
-  
publish
public void publish(LogRecord record)
格式化并发布一个LogRecord。- 重写:
 -  
              
publish在StreamHandler - 参数
 -  
              
record- 日志事件的描述。 空值记录被默认忽略并且未发布 
 
-  
close
public void close() throws SecurityException关闭所有文件。- 重写:
 -  
              
close在StreamHandler - 异常
 -  
              
SecurityException- 如果安全管理器存在,并且呼叫者没有LoggingPermission("control")。 
 
 -  
 
 -