最基础的日志查看命令(tail):
tail -400f port_19999_access.log # 监控最后400行日志文件的变化 (-f参数是实时)
查看关键日志(grep过滤器):
grep 'INFO' port_19999_access.log # 在文件port_19999_access.log中查找所有包行INFO的行
grep -c 'uid=76842053' port_19999_access.log # 输出文件port_19999_access.log中查找所有包行 uid=76842053 的行的数量
输出:9
grep -o 'get_user_state/v3?uid=[0-9]+' port_19999_access.log # -o选项只提取get_user_state/v3?uid=xxxx 的内容(而不是一整行),并输出到屏幕上
输出:
get_user_state/v3?uid=70586131
get_user_state/v3?uid=74199859
get_user_state/v3?uid=58140943
get_user_state/v3?uid=63461178
get_user_state/v3?uid=14659010
get_user_state/v3?uid=51995497
get_user_state/v3?uid=69638137
精简日志内容(sed修改器):
sed -n '/^2011-08-23.*ERROR/p' demolog.log # 输出demo.log中的某个日期中的ERROR的行
输出:
2011-08-23 19:57:30,709 [] ERROR bo.CommodityCerOrderBO - order-fix.curr_id:10117,status:添加属性id,但由于认证分类参数有误默认取匹配属性名称的第一个属性id:100104
2011-08-23 19:57:31,721 [] ERROR bo.CommodityCerOrderBO - order-fix.curr_id:10117,status:添加属性id,但由于认证分类参数有误默认取匹配属性名称的第一个属性id:100105
2011-08-23 19:57:32,727 [] ERROR bo.CommodityCerOrderBO - order-fix.curr_id:10117,status:添加属性id,但由于认证分类参数有误默认取匹配属性名称的第一个属性id:100107
统计日志相关记录数(awk):
awk 'BEGIN{FS="@"} {print $2,$3}' demo.log_after_sort #BEGIN中预处理的是,把@号作为行的列分割符,把分割后的行的第2,3列输出
输出:(对于从sort得出的结果作为输入)
10117 INFO
10117 INFO
10117 ERROR
10117 ERROR
10117 ERROR
10222 INFO
...略