簡體   English   中英

如何重新格式化RFC5424日志尾巴的輸出以使其更易於閱讀?

[英]How can I reformat the output of a RFC5424 log tail to be easier to read?

日志消息的RFC5424格式是合理的,但難以即時讀取。

關於如何使它更易於閱讀的技術方面有何想法?

您可以使用JSON模塊將其解碼為本地Perl結構,並使用Data::Dumper查看它

perl -MJSON -MData::Dumper -0 -ne 'print Dumper decode_json($_)' path/to/log/file

(可選)將Dumper縮進設置為1以更好地查看: $Data::Dumper::Indent = 1

我只是想將其放置在某處,以防某天有人找到它的用途。

在adonis.js中工作時,我發現Logger類非常有用,但是其輸出很難即時讀取。

我做了一些挖掘工作,找不到合理的解決方案,所以我花了一些力氣才能得出以下結果:

tail path/to/log/file -f | perl -pe 's/^.*?"level":"([^"]*)".*?"message":"((\\"|[^"])*)".*?"timestamp":"([^"]*)".*?$/\e[0;36m|\e[0m\e[1;30m $1: $4\n\r\e[0m\e[0;36m|\e[0m $2\n\r/'

這將變成RFC5424格式的日志文件條目的典型日志:

在此處輸入圖片說明

對此:

在此處輸入圖片說明

希望這對某人有用!

logfmt

沒有為此的CPAN模塊,但是您可以使用以下代碼對其進行近似:

journalctl -o json | perl -MJSON -lne'
    my $j = decode_json $_;
    my $out = "";
    for my $k (sort keys %$j) {
        my $v = $j->{$k};
        $v = qq("$v") if $v =~ /\s/;
        $out .= "$k=$v ";
    };
    print $out;
'

coloutlnav一起使用以提高可用性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM