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” 为数值类型。解析得到的结果会暂时存储到内存中,供解析消息用。
  • 消息解析 程序去检查字符串中是否存在 “|”:
    1. 如果存在则使用 “|” 进行分隔得到子字符串数组,遍历数组元素,记录 index,判断元素中是否存在 “:”:
      1. 如果存在则使用第一个 “:” 进行分隔得到大小为 2 的数组,以第一个元素作为 key,从模板中查询是否存在,如果存在用设置的完整字符串加前缀 col_ 替换当前的 key 作为 field 的自定义字段,不存在则使用 col_ 加上当前 index 作为 field 的自定义字段。q-1-1
      2. 如果不存在则使用 col_ 加上当前 index 作为 field 的自定义字段。q-1-2
    2. 如果不存在,判断字符串中是否包含 “:”:重复以上 q-1-1q-1-2 步骤。

别名支持

更多内容

关于 Android 平台更多内容,请移步至 Android Guide

关于 Android 平台更多内容,请移步至 iOS Guide

关于 Logful Web 更多功能,请移步至 Logful Web Guide

关于 Graylog 使用方面更多内容,请移步至 Graylog Documentation