如何使用 Perl 监视日志文件并插入时间戳?
我有一个以追加模式生成日志的应用程序,但日志没有时间戳。
是否可以将 tail -f
与某些选项一起使用,或使用 perl
脚本来监视对此文件的写入并为其添加时间戳前缀?
鉴于我在没有 Cygwin 的情况下运行 Windows,我可以避免使用 bash 或任何其他 Unix shell 吗?
I have an application which generates logs in append mode, but the logs are not timestamped.
Is it possible to use tail -f
with some option, or a perl
script to monitor writes to this file and prefix them with a timestamp?
Given that I am running Windows without Cygwin, could I avoid using bash or any other Unix shell?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您使用 GNU tail,那么您应该能够使用 GNU gawk。
if you are using GNU tail, then you should be able to use GNU gawk.
您可以使用 while 循环:
暗示每行的运行日期。您可以使用 date 命令的格式输出选项来获取所需的时间戳格式。
我非常基本的 Perl 等价物是(script.pl):
You could use a while loop:
Implies running date for each line though. You could use the format output options of the date command to get the timestamp format you want.
I very basic Perl equivalent would be (script.pl):
也许您可以使用带有 File::Tail 和 DateTime 的 perl 脚本吗?
May be could you use a perl script with File::Tail and DateTime ?
看起来
File::Tail
模块是专为读取附加日志文件而设计。也许值得一看。
It looks like the
File::Tail
module was designed specifically for reading in appended log files.It may be worth a look.