7.5 记录日志
- 记录日志API优点:
- 可以很容易的取消全部日志记录,或者仅仅取消某个级别的日志,而且打开和关闭这个操作也很容易
- 可以很简单地禁止日志记录的输出
- 日志记录可以被定向到不同的处理器
- 日志记录器和处理器都可以对记录进行过滤
- 日志记录可以采用不同的方式格式化
- 应用程序可以采用多个日志记录器,它们使用类似包名这种具有层次结构的名字
- 在默认情况下,日志系统的配置有配置文件控制.如果需要,应用程序可以替换这个配置
7.5.1 基本日志
- 要生成简单的日志记录,可以使用
全局日志记录器(global logger)
并调用其info方法
Logger.getGlobal().info(String);
- 如果在适当的地方调用(如main开始)
Logger.getGlobal().setLevel(Level.EOF);
会取消所有日志
7.5.2 高级日志
- 不要将所有的日志都记录到一个全局日志记录器中,而是
可以自定义日志记录器
- 可以调用
getLogger方法
创建或获取记录器 - 未被任何变量引用的日志记录器可能会被垃圾回收.为了防止这种情况,用一个静态变量存储日志记录器的一个引用
- 与包名类似,日志记录器名也有层次结构.事实上,与包名相比,
日志记录器的层次性更强
- 7个日志记录器级别:
- SEVERE
- WARNNING
- INFO
- CONFIG
- FINE
- FINER
- FINEST
- 还可以用
Level.ALL
开启所有级别的记录,或者使用Level.OFF
关闭所有级别的记录 - 还可以使用
log方法
指定级别 - 默认的日志记录器将显示包含日志调用的类名和方法名
- 记录日志的常见用途是
记录那些不可预料的异常
. - 调用throwing可以
记录一条FINER级别的记录和一条以THROW开头的信息
7.5.3 修改日志管理器配置
- 默认情况下,配置文件位于
jre/lib/logging.properties
7.5.4 本地化
7.5.5 处理器
- 在默认情况下,日志记录器将记录发送到ConsoleHandler中,并由它输出到System.err流中.
- 处理器也有日志级别记录.对于一个要被记录的日志记录,它的日志记录级别必须高于日志记录器和处理器的阈值
7.5.6 过滤器
7.5.7 格式化器
7.5.8 日志记录说明