当前位置:嗨网首页>书籍在线阅读

21-结果分析

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

结果分析

本节使用Java日志API提供的 Logger 类输出并发程序的应用日志,并通过实现 MyFormatter 指定日志输出的格式。在 MyFormatter 类中,程序实现了 Formatter 上的 format() 方法,该方法接收一个包含所有日志信息的 LogRecord 类型的对象作为参数,并且输出指定格式的日志文本。本案例中,我们可以在 LogRecord 对象上用下述方法获得日志记录的详细信息。

  • getLevel() :获得日志记录的等级。
  • getMillis() :获得日志记录发送到 Logger 对象上的具体时间。
  • getSourceClassName() :获得日志记录来源类的类名。
  • getSourceMessageName :获得日志记录来源方法的方法名。
  • getMessage() :获得日志内容。

MyLogger 类实现了静态方法 getLogger() 。该方法创建了一个 Logger 类型的对象,并且关联一个输出日志到 recipe6.log 的处理器对象,输出日志的格式由 MyFormatter 对象指定。另外,传入不同的名称到 Logger 类的 getLogger() 将会得到不同的对象,然而这个过程中只创建了一次 Handler 对象,因此日志将会输出到相同的日志文件中,另外,由于之前已经设置了输出日志等级为“输出全部类型的日志”,因此所有类型的日志都会输出到日志文件中。

本案例实现了一个 Task 类对象和输出日志到日志文件的主类对象,使用了以下方法。

  • entering() :输出FINER等级的日志,这表示某个方法已经开始执行。
  • exiting() :输出FINER等级的日志,这表示某个方法已经结束执行。
  • log() :输出指定等级的日志信息。