日志输出json,是否应该缩进??
RT
不缩进,不方便阅读 缩进,grep只输出单行
4 回复
我们也有这样的问题 提供我们现在项目的解决方案。你可以参考下; 我们的日志也是通过一个日志系统将线上的日志拉到开发机。拉过来后也是json的;为了输出方便,我们单独写了一个命令来输出友好的日志格式;
原格式是这样的:{“hello”: “world”, “nihao”: “shijie”}
命令行使用:tail -f xxx.log | grep ‘key’ | pj
输出后的格式是这样的: @hello: world @nihao:shijie
命令代码如下:
#!/usr/bin/env php
<?php
$fp=fopen('php://stdin','r');
$content='';
$args = isset($argv[1])?$argv[1]:0;
if($fp){
while($line=fgets($fp)){
$res = json_decode($line,true);
if($args){
//print_r("\033[0;0;32m".$res[$args]."\033[0m\n");
echo "\n";
print_r($res[$args]);
echo "\n\n";
}else{
foreach($res as $k =>$v){
echo "\033[0;0;32m".str_pad($k,10," ")." \033[0m"."\033[0;0;33m $v \033[0m \n";
}
echo "\n\n";
}
}
fclose($fp);
}
pj的意思是: php json。好囧的取名。 具体的效果图看我的 github
感觉日志单行好些。便于日志分析。grep 查找的话,后面可以对 JSON format 一下
@hinson0 谢谢你的回复 我有空用node写个玩玩
@hinson0 异常信息呢?? 那可不是json