问题标签 [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 调用 log4perl 以防出现未处理的错误
log4Perl 中是否有一种方法可以强制我的程序即使在 eval 子句之外也可以记录致命错误?我也想在任何未处理的程序终止的情况下调用 log4perl。最好我想在我的标准模块中添加相关的错误处理程序,该模块加载了我所有的 Perl 程序。
Perl 版本目前是 5.8,但我很快就会升级。
这是给定答案的测试代码。我在屏幕上既没有看到 DIE,也没有看到 die.txt 被创建。
log4perl - Log4perl 类别作为日志文件名
我确定我很模糊并且遗漏了明显的东西,但是有没有一种简单的方法可以使用当前类别作为配置文件中的文件名而不诉诸子例程调用?
这样在下面可以使用而不是在文件名行${category}.log
中重复bin.nh.tpp
linux - 如何让 Log4perl 每天轮换我的日志?
我正在阅读Log4perl并想尝试使用它来对我在 Linux 机器上运行的 Perl 脚本进行简单的日志管理。我也阅读过newsyslog
,logrotate
但如果可能的话,我想使用 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
等。
这是我认为已经接近的最佳尝试,但仍然缺少一些配置:
如何配置log4perl.appender.MyAppLogAppender
为每天轮换一次、删除旧文件并创建一个具有正确时间戳的新文件?提前致谢。
linux - Log4perl 配置不起作用
我在我的 Linux 机器上安装了 Log4perl,并具有以下内容/path/to/log4perl.conf
:
在我的每个 perl 脚本中(每个脚本使用不同的附加程序和日志到不同的日志文件):
即使每个脚本使用不同的 appender 并记录到不同的文件,它们都应该具有相同的行为:
- 每个日志每天轮换一次,旧的(轮换的)日志被删除
我已经让这个脚本运行了超过 24 小时,而且我没有看到在/my/logs/
.
所以我问:我的log4perl.conf
不正确吗?如果不是,我该怎么做才能诊断问题?我是否在 perl 脚本中错误地初始化了库?提前致谢。
perl - 使用文件附加程序的 Log4perl 奇怪的错误
我正在尝试向 Log4perl 记录器添加和删除一个简单的文件附加程序,但是会生成警告并且没有打印任何内容。这是我的代码:
文件“someFile.txt”已创建但为空。生成的警告是:
带有时间戳的“信息”也会打印到命令行。谁能看到我犯了什么错误?
perl - 如何安装和使用 log4perl?
我是新手log4p
,想用它来登录我的代码。我收到如下错误:
在 @INC 中找不到 Log/Log4perl.pm
我理解是因为缺少库。现在,我在哪里以及如何在我的 UNIX 环境中安装这个库?
我尝试安装:
这也失败了。我不是在正确的轨道上吗?有人可以给我一个快速启动链接,它还告诉我如何安装这个包以及从哪里安装?
perl - Perl 日志文件命名为时间戳问题
我正在编写一个 Log4perl 记录器,并且正在使用 localtime() 函数。问题是,每次我调用重新实例化 log4perl 记录器的模块(对于不同的文件)时,localtime() 都会有所不同,当我希望它们都在一个文件中时会创建几个不同的日志文件。
想法?
以上是我做之前的代码use LIB::Paths
,也是第一个使用Paths.pm的文件。下面的代码是 Paths.pm 文件。第一个文件调用use LIB::Paths
,第二个文件也是如此[可以添加,但我不想把所有代码都扔给你们]。 这会产生两个单独的时间戳。
perl - 将 perl 脚本的所有输出定向到文件和屏幕
我有一个使用 log4perl 将所有输出记录到屏幕和文件的 perl 脚本。问题是,某些输出没有被定向到 log4perl。
脚本 -
Log4perl 配置 -
这是屏幕/ide上的输出-
这是日志文件中的输出 -
我知道我使用的是打印语句而不是 log->info,但我希望 log4perl 配置使得脚本的所有输出,无论它是如何生成的,都被定向到 log4perl。
关于我如何做到这一点的任何想法?
perl - 如何配置 log4perl.conf 和 perl 脚本以设置正确的日志文件权限?
我Log::Log4Perl
用于记录我的 perl 脚本。一切都很好,除了一件事;我有一些不同脚本使用的通用模块(并由不同的用户运行)。我希望这些日志文件具有-rw-rw-rw-
权限,但我使用的以下代码似乎没有帮助:
在我的/etc/log4perl.conf
在我的 perl 脚本中script.pl
此配置和相应的代码创建script.log
具有权限的文件-rw-r--r--
,但我想要-rw-rw-rw-
。代码有什么严重错误吗?另请阅读文件附加程序可以创建具有不同权限的文件吗?
perl - 催化剂:Log4perl 和 Apache
我使用 Apache2 和 ModPerl 托管我的 Catalyst Web 应用程序。Web 应用程序使用 Log4perl 模块来生成日志文件。
问题是 apache 服务启动时只生成日志条目。之后没有生成新条目。
如果我改用催化剂的集成开发服务器,日志条目会正常生成。
我已经检查了访问权限,这些似乎没问题:apache 进程是所有者并且可以写入。
任何人都知道是什么导致了这个问题???
这是我的 log4perl 配置:
log4perl.logger.myapp=信息,日志文件
log4perl.appender.LOGFILE=日志::Log4perl::Appender::文件
log4perl.appender.LOGFILE.filename=myapp.log
log4perl.appender.LOGFILE.mode=追加
log4perl.appender.LOGFILE.layout=模式布局
log4perl.appender.LOGFILE.layout.ConversionPattern=[%d] [%p] %m%n