gpt4 book ai didi

linux - 如何让 Log4perl 每天轮换我的日志?

转载 作者:IT王子 更新时间:2023-10-29 00:52:18 27 4
gpt4 key购买 nike

我正在阅读 Log4perl并想尝试使用它对我在 Linux 机器上运行的 Perl 脚本进行简单的日志管理。我还阅读了 newsysloglogrotate但尽可能使用 Log4perl。

我正在尝试配置 /etc/log4perl.conf文件以便它:

  • 定义一个 widget将所有输出写入 INFO 的记录器(/opt/myapp/logs/myapp-<datetime>.log 级别) , 其中<datetime>是日期/时间格式的字符串,如 2012-12-20
  • myapp-<datetime>.log文件需要每天轮换(最好在午夜),删除旧文件,并使用 <datetime> + 1 创建新文件.例如,myapp-2012-12-20.log将替换为 myapp-2012-12-21.log

这是我认为接近的最佳尝试,但仍缺少一些配置:

#####/etc/log4perl.conf############################################################
log4perl.logger.widget = INFO, MyAppLogAppender

log4perl.appender.MyAppLogAppender = Log::Log4perl::Appender::File
log4perl.appender.MyAppLogAppender.filename = /opt/myapp/logs/myapp-???.log
log4perl.appender.MyAppLogAppender.layout = Log::Log4perl::Layout::SimpleLayout
###################################################################################

如何配置 log4perl.appender.MyAppLogAppender每天轮换一次,删除旧文件,然后创建一个具有正确时间戳的新文件?提前致谢。

最佳答案

这是一个 Log::Log4perl 配置文件的例子,定义了每天午夜的滚动(日期模式 yyyy-MM-dd),最多保存 5 个保存的日志文件,在 WARN 级别,并将所有内容转储到屏幕:

log4perl.logger                         = TRACE, Screen, Logfile

log4perl.appender.Logfile = Log::Dispatch::FileRotate
log4perl.appender.Logfile.Threshold = WARN
log4perl.appender.Logfile.filename    = test.log
log4perl.appender.Logfile.max         = 5
log4perl.appender.Logfile.DatePattern = yyyy-MM-dd
log4perl.appender.Logfile.TZ          = PST
log4perl.appender.Logfile.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.Logfile.layout.ConversionPattern = %d %m %n

log4perl.appender.Screen = Log::Log4perl::Appender::Screen
log4perl.appender.Screen.stderr = 0
log4perl.appender.Screen.utf8 = 1
log4perl.appender.Screen.layout = Log::Log4perl::Layout::PatternLayout::Multiline
log4perl.appender.Screen.layout.ConversionPattern = [%p] %m %n

(引用:https://metacpan.org/module/Log::Log4perl::FAQ#How-can-I-roll-over-my-logfiles-automatically-at-midnight-)

关于linux - 如何让 Log4perl 每天轮换我的日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13938029/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com