Log::Log4perl 日志系统使用指南
1. 日志级别与消息层次结构
日志消息具有层次结构,配置消息级别(如 $DEBUG
)意味着该级别及所有更低级别的消息都会到达相应的附加器(appender)。Log::Log4perl 定义了六个级别,调试(DEBUG)是最高级别,能产生最多输出。各级别及其层次结构如下:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
需要注意的是,实际上是在配置附加器,每个附加器都会有机会记录输出。它会检查消息并决定是否记录。例如,在之前的示例中, error_log
和 STDERR
附加器都知道要记录 ERROR
级别的消息,所以 ERROR
消息会同时出现在这两个地方;而只有 STDERR
附加器认为应该记录 DEBUG
级别的消息,所以 DEBUG
消息仅显示在屏幕上。
2. 子例程参数
除了简单地记录消息,还可以给日志例程传递一个匿名子例程作为参数。这个子例程只有在记录该级别的日志时才会运行,子例程中的返回值将成为日志消息。示例代码如下:
#!/usr/bin/perl
# log4perl_runsub.pl
use strict;
use warnings;
use Log::Log4perl