【发布时间】:2012-12-08 00:25:25
【问题描述】:
我在我的 Linux 机器上安装了 Log4perl,并有以下/path/to/log4perl.conf:
log4perl.logger.Fizz = INFO, FizzAppender
log4perl.logger.Buzz = INFO, BuzzAppender
log4perl.appender.FizzAppender = Log::Dispatch::FileRotate
log4perl.appender.FizzAppender.filename = /my/logs/fizz-log.txt
log4perl.appender.FizzAppender.max = 1
log4perl.appender.FizzAppender.DatePattern = yyyy-MM-dd
log4perl.appender.FizzAppender.TZ = EST
log4perl.appender.FizzAppender.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.FizzAppender.layout.ConversionPattern = %d %m %n
log4perl.appender.BuzzAppender = Log::Dispatch::FileRotate
log4perl.appender.BuzzAppender.filename = /my/logs/buzz-log.txt
log4perl.appender.BuzzAppender.max = 1
log4perl.appender.BuzzAppender.DatePattern = yyyy-MM-dd
log4perl.appender.BuzzAppender.TZ = EST
log4perl.appender.BuzzAppender.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.BuzzAppender.layout.ConversionPattern = %d %m %n
在我的每个 perl 脚本中(每个脚本使用不同的附加程序和不同日志文件的日志):
use Log::Log4perl;
my $log_conf = "/path/to/log4perl.conf";
Log::Log4perl::init($log_conf);
# In one script the logger is a "Fizz" logger (like below), and in the other
# script the logger is a "Buzz" logger.
my $logger = Log::Log4perl->get_logger("Fizz");
$logger->info("This should work.");
即使每个脚本使用不同的附加程序并记录到不同的文件,它们都应该具有相同的行为:
- 每个日志每天轮换一次,旧的(轮换的)日志会被删除
我已经让这个脚本运行了超过 24 小时,我没有看到在/my/logs/ 下生成任何日志。
所以我问:我的log4perl.conf 不正确吗?如果不是,我可以做些什么来诊断问题?我是否在 perl 脚本中错误地初始化了库?提前致谢。
【问题讨论】:
-
我还应该注意,我仅安装了主要的 Log4perl 模块,所以如果
Log::Dispatch::FileRotate不是Log4perl的一部分,那么我会说这显然是它。但是,我已经阅读了建议这两种方式的在线文档,所以我对是否需要安装其他任何东西感到困惑...... -
如果您将
use strict和use warnings添加到您的示例代码然后只运行它,您会在屏幕上看到什么错误?
标签: linux perl logging log4perl