问题标签 [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.
logging - 如何终止 Log::Log4perl
我有一个包含多个子目录的根目录。我需要遍历所有这些子目录并处理它的文件。我使用 Log::Log4perl 来记录处理过程中发出的消息。不使用多处理/分叉。
到目前为止一切顺利,但关键来了:在处理给定子目录期间发出的日志消息必须记录到子目录本地的单独日志文件中。
我搜索了 Log::Log4perl 的文档(那里找不到“终止”)、常见问题解答和网络,但找不到如何终止记录器,所以我可以切换到另一个子目录并重新开始记录到另一个文件。
有任何想法吗?
perl - 使用 Log::Log4perl 记录所有意外错误
我想为我的 Perl 脚本生成一个日志。但是当我使用Log::Log4perl时,我如何才能捕获脚本在任何情况下都会抛出的错误。如何将其记录到日志文件中。目前,我在 ERROR()、DEBUG() 等各种标签中明确写入的任何内容都是唯一打印到日志文件的标签。
有没有办法使用 Log::Log4perl 来做到这一点。
例如在下面的代码中:
除以零错误不会记录到脚本中。我的原始脚本太复杂,无法检查每个错误,所以需要一些将 stderr 上的错误也记录到日志文件的东西。
perl - 在 Log4Perl 中定义多个日志级别
我有以下用于多个脚本的 log4perl.conf 配置文件。它被配置为显示来自所有日志级别的消息。
脚本使用此代码片段对其进行初始化:
由于有多个脚本使用相同的配置,因此无需每次都修改配置文件来调整日志记录级别的最佳方法是什么?
我可以创建一个新的记录器并让脚本使用该记录器而不是根记录器吗?
perl - 获取使用 log4perl 记录消息的模块或脚本的名称
如果一个特定的模块正在使用 log4perl 进行日志记录,那么有没有办法在内部使用 log4perl 获取该模块的名称。或者消息是从 srcipt(.pl) 记录的,除了使用调用者或任何不显式使用 log4perl 函数的函数之外,我们是否也可以使用 log4perl 获取脚本的名称。
perl - 如何在 Log4perl 中登录到两个不同的文件?
我有一个 Perl 脚本,它产生两个不同的数据流。
我需要将它们记录到两个单独的日志文件中。
我知道两种方法会导致不同的日志文件,但在我的情况下似乎都没有帮助:
使用类别(Perl 模块名称)。
在我的情况下,流都是在相同的代码中生成的(“主”包,但这无关紧要,重要的是我有彼此相邻的代码行记录到不能分成不同 Perl 的 2 个位置模块)。
使用不同的日志级别。
但是,两者都应该以相同的优先级记录(例如,两者都记录
info()
调用并error()
视情况而定),因此我不能使用常见问题解答配方将WARN/ERROR 记录到不同的文件。
perl - 从调用脚本更改模块中 Log4perl 记录器的级别
好的 - 所以我有一个模块和一个调用它的脚本,它们都实现了 Log4perl。这是一个MWE:
测试.plx:
测试.pm
生成输出:
如果我换行
至
我得到:
如您所见,$logger-level($ERROR)
在主脚本中调用会更改那里的日志记录级别(main
INFO
和WARN
调用不再输出),但调用似乎不会更改模块的日志记录级别。
显然,模块在加载时从主脚本获取它的记录器级别,因为如果我将级别更改为块中的模块WARN
调用不再打印。但它似乎没有维护对同一记录器对象的引用,因为运行时的更改不会传播。ERROR
BEGIN
(如何)我可以让记录器级别更改动态传播到模块吗?
谢谢。
PS我更喜欢使用DEBUG ...
表单与$logger->debug(...)
表单,只是为了与我们拥有的其他代码保持一致,但如果这是唯一的方法,我会切换。
(编辑以试图更清楚。)
perl - Log4perl: how to switch to other-named log file on the fly?
I am the author of the
Log4perl::KISS
module, and I want to convert the log_open
function so that it can switch the current log file on the fly at any time without full Log::Log4perl
reinitialization.
I know that the file appender in Log4perl
can switch to the file with the same name (this possibility was added to allow log rotation), but I need to switch to a different filename. I don't know how to change the filename used by the file appender before switching to another file handle.
How to change the appender's filename if it is possible?
perl - log4perl:分组消息
我log4perl
用来记录来自perl
脚本的消息。如下所示,然后我收到mwe.pl
以下(所需)输出test.log
我当前的实现使用:
请特别注意,我已经使用 手动指定了换行符\n
,这是我想避免的。
有没有一种方法可以实现我想要的输出(test.log
),而无需搭建我的日志输入?
mwe.pl
perl - 如何使用 Log4perl 登录到不同的文件
在 perl 中,有没有办法记录到不同路径中的两个不同文件?
例如,我必须在一个文件中记录详细的服务器查询和响应,并在其他文件中记录脚本流(第二个文件将只有抽象信息)。我如何在 Log4Perl 中实现这一点。
当我尝试在脚本的不同位置获取 logger1 和 logger2 时,最后获得的实例会复制到两个记录器。例如,
我被困在这里。怎么了?!