gpt4 book ai didi

perl - 如何在 Perl DBI 日志文件中获取时间戳?

转载 作者:行者123 更新时间:2023-12-01 09:10:39 26 4
gpt4 key购买 nike

我有一个问题,即应用程序在 DBI 调用期间随机死亡。我们无法在我们的测试或验收环境中可靠地重现这一点,因此我需要在我们的生产系统上对其进行监控,以试图弄清楚发生了什么。

我正在记录所有 DBI交通通过DBI_TRACE环境变量。

DBI_TRACE=3=dbi.log script.pl

然而,问题是 DBI 日志文件中没有时间戳,因此很难通过它们来查找模具发生时发生的情况。

有什么方法可以启用带时间戳的 DBI 日志记录?

最佳答案

您可以使用 File::Tee重定向 STDERR 并添加带有时间戳的前缀。

例如:

use strict;
use warnings;

use File::Tee 'tee';

my $logfile = "/path/to/timestamped/logfile.log";
my $filter = sub { return localtime() . ' ' . $_[0] };

my $pid = tee STDERR, { preprocess => $filter, reopen => $logfile };

print STDERR "something bad happened.";

这里的优点是它不会干扰您现有的 STDERR——所有错误消息将继续出现在同一个地方。但流被复制并写入 $logfile ,通过 $filter 进行任何您想要的转换钩。

关于perl - 如何在 Perl DBI 日志文件中获取时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1297140/

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