Essentials¶
通过前面的 Step-by-step 示例,您应该已经初步了解了 Logful 是怎样运作的。当然,这些并非是全部。在继续了解 Android、iOS 和 Web 侧更多内容前,有必要先一些重要的、共性的技术内容。
UID¶
日志级别¶
-
verbose
level
1
详细的日志信息 -
debug
level
2
程序运行 debug 信息 -
info
level
3
程序运行时信息 -
warn
level
4
关键的警告信息 -
error
level
5
记录程序未按照预定逻辑执行的错误 -
exception
level
6
记录重要的程序运行异常信息 -
fatal
level
7
程序无法继续正常运行的严重错误
日志模板¶
模板内容
s,status_code,%n|r,response,%s
消息内容
s:201|r:{"result":0, "message":"some message"}|extra_message|t:timestamp
解析结果
col_status_code: 201
col_response: "{'result':0, 'message':'some message'}"
col_2: "extra_message"
col_3: "t:timestamp"
解析规则
模板解析
程序会先使用 “|” 进行分隔,再对分隔得到的每个数组元素使用 “,” 进行分隔得到大小为 3 的数组,数组中的第一个元素代表第二个元素的缩写,第二个元素为完整的字符串,第三个元素代表内容的类型:“%s” 为字符串类型,“%n” 为数值类型。解析得到的结果会暂时存储到内存中,供解析消息用。消息解析
程序去检查字符串中是否存在 “|”:- 如果存在则使用 “|” 进行分隔得到子字符串数组,遍历数组元素,记录 index,判断元素中是否存在 “:”:
- 如果存在则使用第一个 “:” 进行分隔得到大小为 2 的数组,以第一个元素作为 key,从模板中查询是否存在,如果存在用设置的完整字符串加前缀 col_ 替换当前的 key 作为 field 的自定义字段,不存在则使用 col_ 加上当前 index 作为 field 的自定义字段。
q-1-1
- 如果不存在则使用 col_ 加上当前 index 作为 field 的自定义字段。
q-1-2
- 如果存在则使用第一个 “:” 进行分隔得到大小为 2 的数组,以第一个元素作为 key,从模板中查询是否存在,如果存在用设置的完整字符串加前缀 col_ 替换当前的 key 作为 field 的自定义字段,不存在则使用 col_ 加上当前 index 作为 field 的自定义字段。
- 如果不存在,判断字符串中是否包含 “:”:重复以上
q-1-1
和q-1-2
步骤。
- 如果存在则使用 “|” 进行分隔得到子字符串数组,遍历数组元素,记录 index,判断元素中是否存在 “:”:
别名支持¶
更多内容¶
关于 Android 平台更多内容,请移步至 Android Guide
关于 Android 平台更多内容,请移步至 iOS Guide
关于 Logful Web 更多功能,请移步至 Logful Web Guide
关于 Graylog 使用方面更多内容,请移步至 Graylog Documentation