众所周知,软件日志对问题的排查可以起到至关重要的作用,但在多人协同开发的情况下,可能会导致不同的人使用不同的日志打印风格,导致日志可阅读性不高。纵观各大知名软件的输出日志,无不有着规范的格式,非常利于阅读。

本日志输出规范仅适用于客户端软件,不适用于服务器端软件。

  1. 日志中使用英文,不使用中文。

  2. 日志文件采用UTF-8编码。

  3. 每条日志的第一个单词的首字母大写,而且每条日志以回车换行符(\r\n)结束,不需要写句号.,如:

    1
    2
    // RTC_LOG会自动在日志结尾添加\r\n
    RTC_LOG(LS_INFO) << "Forced software decoder fallback enabled";
  4. 不同语义间使用逗号,分隔,key-value间使用冒号:分隔,如:

    1
    2
    3
    RTC_LOG(LS_INFO) << "DataChannel received DATA message, sid: " << sid;
    RTC_LOG(LS_INFO) << "Session: " << session_id() << " is destroyed";
    RTC_LOG(LS_ERROR) << "Invalid configuration: " << config_error.message();
  5. 每条日志需要包含日志打印的时间(日期+时间+时区,精确到毫秒)、日志级别。