【Sheepdog】 日志格式
2018-12-11 本文已影响0人
AustinPup
什么是日志格式化程序,以及如何使用它
概念
日志格式化程序是一种libsheepdog的记录机制(什么鬼?)。支持两种格式: 缺省和JSON
格式选择
针对sheep和sheep守护进程,命令行使用 -F 参数;针对两种格式,分别使用 -F default 和 -F json。
JSON格式
JSON格式是结构化的,典型形式如下:
{ "user_info": {"program_name": "sheep", "port": 7000},"body": {"second": 1365731341, "usecond": 742602, "worker_name": "main", "worker_idx": 0, "func": "init_signal", "line": 173, "msg": "register signal_handler for 10"} }
我们通过json可以轻松提取诸如时间戳、函数名、行信息等,而不需要额外的正则表达式;
Json格式的应用
当前只有一种应用使用json格式: script/json_log_viewer.py 这脚本用于sheepdog的测试(好像不太对)。使用参数如下:
script/json_log_viewer.py "json log file 1" "json log file 2" ...
格式比较漂亮,日志根据生成器有两种颜色;
json_log_viewer.py的快捷键
- j: scroll down one line
- k: scroll up one line
- g: go to top
- G: go to bottom
- q: quit
典型实例:
$ cd tests
$ sudo LOG_FORMAT=json DRIVER=local ./check 001 # specify log format with the environment variable $LOG_FORMAT.
$ ../script/json_log_viewer.py logs.timestamp/* # view the collected log files
未来工作
- 继续改进完善
- 基于sheep分析的状态机,通过它,我们能够分析各种sheep的行为
PS:
本章节有点云里雾里,是介绍一种json格式的日志形式么?