问题标签 [log4perl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - 在后台运行的单个 perl 脚本可以保存多个 Log4Perl 实例吗?
我有一个脚本“server.pl”,它在后台运行并且使用 Log4Perl 进行自我记录。
该脚本不断读取目录并检测使用 Linux::Inotify2 模块在其中创建的新文件。
每个检测到的文件都是一个可存储的对象,它是一个要运行的管道,并且必须写入自己的日志文件。我的问题是,当我调用 Log4Perl::init 来初始化管道的记录器时, server.pl 不再记录自己,因为新的初始化已经覆盖了前一个。所以问题是如何让“server.pl”脚本保存多个Log4Perl 实例(预先未定义的数量)?
下面是“server.pl”的截断版本(没有无聊的东西)
编辑:在全球范围内,这意味着我需要一个取决于每个实例的记录器,而不是仅在脚本级别定义的记录器。有任何想法吗 ?谢谢
perl - Perl 中的解析帮助
我的(现有)perl 文件使用以下格式的 Log4Perl 创建日志文件
以上只是我的日志文件的一个例子。我使用以下格式化程序
目前我必须发送电子邮件以防出错。
我没有修改现有脚本,而是考虑仅针对错误解析生成的日志文件,并将日志文件中与“错误”相关的所有消息作为电子邮件发送
有没有简单的方法来解析日志文件?
问候,
卡尔提克
perl - 如何更改 Log4perl 时间戳的时区
我的 Web 服务器与我的时区不同,我在 Log4perl 配置中使用这种模式布局:
%d 在服务器的时区生成日期/时间。我怎样才能让它在我的本地时区记录日期/时间?
我知道以下内容:
导致日期/时间在 GMT 中记录,但是我在文档中找不到任何支持任意时区的内容。
perl - 在 Perl 中使用 Log::Log4perl 时,如何在记录之前替换模式?
我试图在登录到文件之前替换日志消息中的模式。记录器使用 Perl 模块Log::Log4perl
。我看到这个模块中只有一个过滤器选项可用,这并不能解决我的问题。
其实,这就是我想做的。假设我的日志消息是"Testing the logger module"
和"Developing the logger module"
。我想将字符串替换为'module'
消息'package'
中的。因此,只要日志消息中有字符串“模块”,就应该在记录之前将其替换为“包”。我想在这里使用 Perl 的正则表达式查找/替换,这将允许我替换不同的模式。
这可能吗?任何人都可以帮忙吗?
提前致谢,
perl - Log4perl:同一行中的新消息没有前缀
每条Log4perl消息都以新行开头:
结果:
如何在同一行获取下一条消息且不带前缀:
有任何想法吗?
升级版:
我试图为我的程序制作进度条。但结果我需要这个进度条只在屏幕上,而不是在日志上。
这样我就这样做了:
谢谢您的回答!
perl - 如何为 log4perl 配置 DateFileAppender
我知道如何配置 log4j,以便日志文件自动轮换,并将日期附加到日志文件中。?
我怎样才能用 log4perl 达到同样的效果?
我为 log4Perl 尝试了相同的配置,但看起来文件名参数是强制性的。任何帮助表示赞赏。
perl - 使用 log4perl 限制日志大小
我想限制使用 log4perl 创建的日志文件的大小。我不希望我的日志文件增长到超过 100mb;我只需要最后 100mb(或大约)的数据。理想情况下,它将截断较早的数据并仅保留最后一位。我知道 Log::Dispatch::FileRotate 模块,但这不太符合我的要求,因为我不想要多个日志文件。
这可能吗?
完整的代码,包括内联配置,如下(减去 use 语句):
perl - Log4Perl:如何更改运行代码中使用的记录器文件?(叉后)
我在 perl 中设置了一个 ETL 进程来处理许多文件,并将它们加载到数据库中。
最近,出于性能原因,我通过使用 fork() 调用和对 system("perl someOtherPerlProcess.pl $arg1 $arg2") 的调用将代码设置为多线程。
我最终得到了大约 12 个使用不同参数运行的 someOtherPerlProcess.pl 实例,这些进程每个都通过一个包含文件的目录(对应于我们数据库中的一个表)工作。
应用程序的主要功能可以工作,但我在弄清楚如何配置我的日志记录时遇到了问题。
理想情况下,我希望所有 someOtherPerlProcess.pl 共享相同的 $log_config 值来初始化他们的记录器,但让每个人在他们正在处理的目录中创建一个日志文件。
我一直无法弄清楚如何做到这一点。我还注意到,在我调用这些 perl 脚本的目录中,我看到了几个包含我所有日志消息的文件(ARRAY(0x260eec)、ARRAY(0x313f8) 等)!
有没有一种简单的方法可以从运行代码中更改 log4perl.appender.A1.filename 值?或者以其他方式动态配置我们使用的文件名,但使用配置文件中的所有其他值?