今日闲来无事,写了一些关于java.util.Logging的程序,记录一些遇到的问题。
1. 日志属性是保存在JRE_HOME/lib/logging.properties文件中,有两种日志记录:控制台和文件,默认只启用控制台。
2. 日志输出级别分为以下几种,级别由高到低:
- SEVERE(最高值)
- WARNING
- INFO
- CONFIG
- FINE
- FINER
- FINEST(最低值)
此外,还有级别 OFF,可用来关闭日志记录。也使用级别 ALL 启用所有消息的日志记录。
默认日志级别是INFO,该级别以下的日志将不会被记录。
注意:假如说在logging.properties 中设置日志级别是FINE,启用级别ALL是指启用当前可以记录日志的级别,并不是启用所有级别。所有当log.finest的时候,同样不会被记录。
3. java.util.logging.FileHandler.pattern = %h/java%u.log 为生成的输出文件名称指定一个模式。
模式由包括以下特殊组件的字符串组成,则运行时要替换这些组件:
- "/" 本地路径名分隔符
- "%t" 系统临时目录
- "%h" "user.home" 系统属性的值
- "%g" 区分循环日志的生成号
- "%u" 解决冲突的惟一号码
- "%%" 转换为单个百分数符号"%"
如果未指定 "%g" 字段,并且文件计数大于 1,那么生成号将被添加到所生成文件名末尾的小数点后面。
java.util.logging.FileHandler.limit = 50000 限制文件的大小,以字节为单位
java.util.logging.FileHandler.count = 1 指定有多少输出文件参与循环(默认为 1)。
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter 指定要使用的 Formatter 类的名称(默认 为java.util.logging.XMLFormatter )。 另外一个是:java.util.logging.SimpleFormatter 。XMLFormatter是以xml样式输出,SimpleFormatter是以普通样式输出。
java.util.logging.FileHandler.append 指定是否应该将 FileHandler 追加到任何现有文件上(默认为 false)。
4. 可以自己写一个Formatter,只需继承Formatter,覆盖其format()方法,然后将其添加到handler中去。
5. 控制台日志记录:ConsoleHandler,比较简单
6. 文件日志记录:FileHandler
7. LogManager,可以添加一系列的Log。