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()
:输出指定等级的日志信息。