perl - 如何使用 perl 对应用程序输出添加时间戳

标签 perl time io piping

我有一个命令行应用程序,它在运行时提供命令行输出。当我将其写入文件(例如:app >> log.txt)时,它全部显示在文本文件中,就像它出现在终端中一样。我需要能够对输出添加时间戳,这样如果我让它继续运行,我就可以回来查看它何时打印。

我尝试过通过管道传输到 perl 脚本:

#!/usr/bin/env perl
use strict;
use warnings;
while (<STDIN>) {
  print time.": $. : $_";
}

使用此命令:

./app | perl timestamp.pl >> test.log 2>&1

但是日志是空的。很抱歉,我无法更具体地介绍我正在运行的应用程序。

最佳答案

遇到缓冲问题? Set

$| = 1;

位于脚本的顶部。

关于perl - 如何使用 perl 对应用程序输出添加时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11365616/

相关文章:

node.js - NodeJS : Need idiomatic: Read files in dir, 连接、转换、写入

perl - 如何在 Perl 中创建或测试 NaN 或无穷大?

python - 查找目录下所有文件中的UTF-8字符串

sql - postgresql 中用户选择的可变间隔选项

c - 为什么有些算术运算比平时花费更多的时间?

python - gensim:自定义相似性度量

c# - 使用 streamreader 处理异常时遇到问题

c - 在没有 <iostream> 功能的情况下从 C 中的输入读取矩阵

regex - 如何使用 Perl 从路径中提取文件名?

python - Python 中各种数据库的单一 API