Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Log4perl配置不工作_Linux_Perl_Logging_Log4perl - Fatal编程技术网

Linux Log4perl配置不工作

Linux Log4perl配置不工作,linux,perl,logging,log4perl,Linux,Perl,Logging,Log4perl,我在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

我在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脚本中(每个脚本使用不同的appender,并将日志记录到不同的日志文件):

即使每个脚本使用不同的appender并将日志记录到不同的文件,它们都应该具有相同的行为:

  • 每个日志每天旋转一次,旧的(旋转的)日志将被删除
我已经让这个脚本运行了24个多小时了,我没有看到在
/my/logs/
下生成任何日志


所以我问:我的
log4perl.conf
不正确吗?如果没有,我可以做什么来诊断问题?
我是否在perl脚本中错误地初始化了库?提前谢谢。

我想您需要将参数
mode
添加到
log4perl.conf
文件中:

log4perl.appender.FizzAppender.mode = truncate
log4perl.appender.BuzzAppender.mode = truncate
为了加快进度,我将您的日期模式更改为:

log4perl.appender.FizzAppender.DatePattern = yyyy-MM-dd-HH-MM
log4perl.appender.BuzzAppender.DatePattern = yyyy-MM-dd-HH-MM
下面是一个使用
log4perl.conf
文件的测试。我已经创建了您的
Perl
脚本的两个副本:

  • log4perl_Buzz.pl
  • log4perl_Fizz.pl
我在脚本中添加了一个循环,以便它们每秒钟都将一条消息记录到各自的日志文件中:

while (1) {
  $logger->info("This should work.");
  sleep 1;
}
我同时运行它们,并使用
watch ls-l
查看以下结果:

Every 2.0s: ls -l                    Thu Dec 20 21:16:51 2012

total 12
-rwxrwxr-x 1 saml saml 358 Dec 20 20:15 log4perl_Buzz.pl
-rw-rw-r-- 1 saml saml 978 Dec 20 21:07 log4perl.conf
-rwxrwxr-x 1 saml saml 358 Dec 20 20:15 log4perl_Fizz.pl
在我运行2个脚本之后:

Every 2.0s: ls -l                    Thu Dec 20 21:17:56 2012

total 20
-rw-rw-r-- 1 saml saml  39 Dec 20 21:17 buzz-log.txt
-rw-rw-r-- 1 saml saml  39 Dec 20 21:17 fizz-log.txt
-rwxrwxr-x 1 saml saml 358 Dec 20 20:15 log4perl_Buzz.pl
-rw-rw-r-- 1 saml saml 978 Dec 20 21:07 log4perl.conf
-rwxrwxr-x 1 saml saml 358 Dec 20 20:15 log4perl_Fizz.pl
约2分钟后:

Every 2.0s: ls -l                    Thu Dec 20 21:19:05 2012

total 28
-rw-rw-r-- 1 saml saml  195 Dec 20 21:19 buzz-log.txt
-rw-rw-r-- 1 saml saml 2340 Dec 20 21:18 buzz-log.txt.1
-rw-rw-r-- 1 saml saml  234 Dec 20 21:19 fizz-log.txt
-rw-rw-r-- 1 saml saml 2301 Dec 20 21:18 fizz-log.txt.1
-rwxrwxr-x 1 saml saml  358 Dec 20 20:15 log4perl_Buzz.pl
-rw-rw-r-- 1 saml saml  978 Dec 20 21:07 log4perl.conf
-rwxrwxr-x 1 saml saml  358 Dec 20 20:15 log4perl_Fizz.pl
这是我的
log4perl.conf
版本,适用于那些在家玩8-

这些是解决这一问题的有用资源:


我还应该注意,我只安装了主Log4perl模块,因此如果
Log::Dispatch::FileRotate
不是
Log4perl
的一部分,那么我会说显然就是这样。然而,我已经在网上阅读了这两种方法的文档,所以我很困惑是否需要安装其他任何东西……如果您在示例代码中添加
使用strict
使用warnings
,然后只运行它,屏幕上会出现什么错误?
Every 2.0s: ls -l                    Thu Dec 20 21:19:05 2012

total 28
-rw-rw-r-- 1 saml saml  195 Dec 20 21:19 buzz-log.txt
-rw-rw-r-- 1 saml saml 2340 Dec 20 21:18 buzz-log.txt.1
-rw-rw-r-- 1 saml saml  234 Dec 20 21:19 fizz-log.txt
-rw-rw-r-- 1 saml saml 2301 Dec 20 21:18 fizz-log.txt.1
-rwxrwxr-x 1 saml saml  358 Dec 20 20:15 log4perl_Buzz.pl
-rw-rw-r-- 1 saml saml  978 Dec 20 21:07 log4perl.conf
-rwxrwxr-x 1 saml saml  358 Dec 20 20:15 log4perl_Fizz.pl
log4perl.logger.Fizz = INFO, FizzAppender
log4perl.logger.Buzz = INFO, BuzzAppender

log4perl.appender.FizzAppender = Log::Dispatch::FileRotate
log4perl.appender.FizzAppender.filename = fizz-log.txt
log4perl.appender.FizzAppender.max = 1
log4perl.appender.FizzAppender.DatePattern = yyyy-MM-dd-HH-MM
log4perl.appender.FizzAppender.TZ = EST
log4perl.appender.FizzAppender.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.FizzAppender.layout.ConversionPattern = %d %m %n
log4perl.appender.FizzAppender.mode = truncate

log4perl.appender.BuzzAppender = Log::Dispatch::FileRotate
log4perl.appender.BuzzAppender.filename = buzz-log.txt
log4perl.appender.BuzzAppender.max = 1
log4perl.appender.BuzzAppender.DatePattern = yyyy-MM-dd-HH-MM
log4perl.appender.BuzzAppender.TZ = EST
log4perl.appender.BuzzAppender.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.BuzzAppender.layout.ConversionPattern = %d %m %n
log4perl.appender.BuzzAppender.mode = truncate