日志规范

日志模型

img

日志是描述系统行为的重要手段. 棱镜内部, 日志被作为系统监控, 问题定位, 数据分析的重要工具。

我们可以把整个系统看成多个模块(module)构成, 每个模块是一个可单独运行的实体, 比如ODP环境中的一个实例, 或JAVA/C++中的一个process. 模块间以Client/Server的模式通信, 一个模块会以RPC的形式调用另外一个模块, 在这种情况下, 调用RPC的为client, 被调用的模块为server. 因此系统中一般存在三种形式的日志:

  • Server Log server端产生的日志. 该日志往往不包含业务相关信息. 只包含该模块入口的基本信息.
  • UI Log 业务进程产生的日志, 业务进程将调试信息, 业务特定信息, 通过UI Log的方式打印.
  • Client Log 调用RPC的日志, 一般包含RPC结果, 耗时, 协议等信息.

Server Log 和 Client Log 主要用来分析模块间依赖相关的功能, 如日志定位, 远程调用失败. 而UI Log主要用来对接口进行监控, 数据分析等, 包括cost监控, qps监控, 错误率监控等.

UI log client log server log
cost y n y
qps y n y
上下游串联 y y y
错误率监控 y n n

ui日志规范

建议每个请求一条NOTICE(INFO)级别日志. 在请求结束打印. 如不能提供唯一一条, 也需要提供一条能通过正则匹配的NOTICE(INFO)级别日志. 非预期结果用WARNING级别. 导致系统不可用错误使用FATAL级别日志.

格式: {level}: {timestamp} [ optime={optime} product={product} subsys={subsys} module={module} logId={logId} key={value} … ]

</tr>

</tr>

</tr>

</tr>

</tr>

</tr>

</tr>

</tr>

</tr>

</tr>

</tr>

</tr> </tbody>

</tr></thead>

</thead></table>

NOTICE: 09-09 14:26:32 usercenter * 45785 [logid=1591985286 filename=/home/work/orp/php/phplib/saf/base/Log.php lineno=28 errno=0 optime=1441779992.210 client_ip=10.202.147.21 local_ip=10.202.68.39 product=nuomi subsys=usercenter module=usercenter uniqid=4214836626 cgid=0 uid=0 passUid=1643578291 bduss= cuid= tn= channel= s= appid= version= ip= pageService=Service_Page_Setting_Phone redisCostUsercenter=0 retErrorNo=0 un= mobilephone= email= baiduid= url=%2Fusercenter%2Fapi%2Fphone refer= uip=10.202.147.21 ua=RAL%2F2.0.2.1%20%28internal%20request%29 host=sh.api.int.nuomi.com cost=2 errmsg=]

server log

logid
spanid
status
host
server_addr
server_port
client_addr
request
msec
request_time
level 日志级别 string NOTICE ODP框架: NOTICE/WARNING/FATAL, Java框架 INFO/WARNING/FATAL
timestamp 时间戳 YY-MM-DD hh: mm: ss/MM-DD hh: mm: ss 09-09 14:26:32
logId logid string 1591985286 字段名现阶段不统一, 建议统一使用logid
optime 记录日志时间 second.ms 1441779992.210
product 产品 string metis
subsys 子系统 string radar
module 模块 string tester
uri 当前页面url 请求级别日志必须 string %2Fusercenter%2Fapi%2Fphone
refer 前链url string -
cost 请求耗时(ms) 请求级别日志必须 int 45
retErrno 返回错误码 请求级别日志必须 int 0 0正常, 非0错误码
errDetail 描述信息 请求级别日志必须 string format error
字段
描述
是否必须
格式
举例
说明

results matching ""

    No results matching ""