日志样例:
[zookeeper]node already exist: /zoo/hi
这里的 [zookeeper] 就是我对日志内容的一种归类, 是一个 tag, 表明是 zookeeper 类的日志.
结果我发现 [] 并不适合用在日志, 要是用 less 搜索日志, [] 会被处理为正则表达式
日志的格式化, 大家有什么最佳实践么
1
guyeu 2020-04-01 21:26:00 +08:00
了解一下转义。。
|
2
chendy 2020-04-01 21:30:31 +08:00
zk 这类的日志没留意过…
nginx 、tomcat 和 spring-boot 的日志,全部用自定义的 json 格式,方便用 filebeat 拉进 es |
3
lidlesseye11 2020-04-01 21:51:18 +08:00
你这个理由......
\[zookeeper\] 还有,这 tag 是干啥用的?为啥要格式化啊?有啥 ELK 满足不了的需求吗 |
4
DinoStray OP 通过转义搜索, 我是知道的.
可是这样很麻烦, 比如我换成 {zookeeper}, 就直接搜 {zookeeper} 就好了. |
5
DinoStray OP 我的问题, 也不是怎样 在 less vi 中使用转义, 而是日志格式化, 有没有什么最佳实践可以分享
|
6
DinoStray OP 如果 {zookeeper} 可以节省我日后查询日志的工作量, 为什么我不一开始就用 {zookeeper}, 而是每次查询还得用一下转义那个[].
所以我的问题, 是日志格式化的最佳实践 |
7
DinoStray OP @chendy 可是有些内容, 还是给开发者看的, 不管开发过程定位问题, 还是线上故障分析. 这类给开发者看的日志, 有没有什么好的, 更易读的最佳实践
|
8
mrytsr 2020-04-01 22:09:29 +08:00 via Android
参见 nginx 的日志
|
9
learningman 2020-04-01 22:13:50 +08:00
日志这种东西能用就行了
|
10
yidinghe 2020-04-01 22:17:13 +08:00
你要是丢到 ELK 的话,格式都不重要了,反正都会被分词。这个时候的最佳实践是面向分词优化,比如说 “批量订单处理查询已支付订单,结果 30 条记录”这种,改成“批量订单处理 查询完成 status=PAID count=30”这样分多段关键字、空格隔开更好,因为搜索日志的时候就知道按照哪些关键字来查。
|
11
mnssbe 2020-04-01 22:26:52 +08:00
怕麻烦啊, 关机睡觉吧
|
12
lululau 2020-04-01 22:38:46 +08:00
用英文,不行汉语拼音也行,就是别用汉字
|
13
Trim21 2020-04-01 22:42:09 +08:00
输出成 json,然后收集到 es 里
|
14
gamexg 2020-04-01 22:46:04 +08:00
[] 使用转移可以解决
另外我现在喜欢结构化日志。 |
15
TimePPT 2020-04-02 00:19:32 +08:00 via Android
直接 ES 搞定
|
16
LouisGuo 2020-04-02 08:47:19 +08:00
|
17
ZSeptember 2020-04-02 09:34:10 +08:00
结构化
|
18
Varobjs 2020-04-02 09:39:38 +08:00 via Android
最佳实践就是
1. 不要手动记错误,每个人写法不一样 2. 同个项目多个日志文件,或者不同服务要保证能用一个 ID 串联起来,要不记再多也枉然 格式问题,详细且一致就好,没啥最佳实践的 |