Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
D
docs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
backend
docs
Commits
7b85f224
Commit
7b85f224
authored
Oct 14, 2015
by
柯阳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
log req added
parent
eccfa30a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
58 additions
and
0 deletions
+58
-0
log.md
log.md
+58
-0
No files found.
log.md
0 → 100644
View file @
7b85f224
# 后端日志规范
## 版本修订
1.
**2015-10-14**
创建
## 适用范围
所有运行着的线上django服务的业务日志,包括但不限于
`gaia`
,
`backend`
,
`ship`
,
`flag-ship`
,
`ascle`
。并希望之后所有的服务的业务日志统一遵守这一规范。
## 日志路径和文件名
原始日志应存放于
`/data/log/${SRV_NAME}/`
文件夹下,其中
`${SRV_NAME}`
为服务名。可以根据需求拆分子文件夹。
目前对原始日志的文件名没有要求。
## 日志编码
业务日志以
`JSON`
作为编码。一行一个
`JSON object`
,以换行符
`\n`
分隔开。
## 日志示例
{"SYS": {"action": "/api/topic/create", "log_host": "10.127.158.29", "cl_id": "861342028123987123", "session_id": "cx123nfglxkdzlfjadwrsdnvsd34z", "cl_type": "ios", "cl_ver": "5.2.1", "channel": "mingxingyichu"}, "LEVEL": "INFO", "APP": {"minami": "kotori", "hello": "world"}, "TIMER": {"total": 123.456, "get_user_from_context": 78.9}, "LOGID": "", "TIME": "2015-10-14T17:13:20+08:00"}
## 日志字段
所有日志字段的key要求只能使用以下字符
`0-9`
,
`a-z`
,
`A-Z`
,
`-`
和
`_`
。
1.
必打字段
所有日志必须包含以下字段
* `LEVEL`: 日志等级。`DEBUG`, `INFO`, `WARNING`, `ERROR`等。
* `LOGID`: trace用,暂时空缺,填空字符串。
* `TIME`: 日志记录时间。使用[ISO8601标准](https://en.wikipedia.org/wiki/ISO_8601),要求包含时区`+08:00`。根据需要决定是否精确到毫秒。完整例子如`2015-10-14T17:13:00+08:00`。
2.
`SYS`
字段
`SYS`字段包含一些全局性的或系统级别的信息,只要有就必须打。包含以下子字段
* `action`: 请求的URL(去掉GET参数)。
* `cl_type`: 请求来源端类型,`ios`/`android`/`pc`/`m`。
* `cl_ver`: 客户端版本号,`pc`不需要填写,m站除了native内嵌h5外不需要填写。
* `cl_id`: 设备标识,android取`device_id`,ios取`idfa`。
* `channel`: 请求渠道,客户端取包名即`channel`字段。pc和m站需要具体分析,暂不填写。
* `session_id`: 用户登陆后必须填写。否则不填写。
* `log_host`: 打印该日志所在机器的内网IP。
3.
`APP`
字段
`APP`字段包含一些业务性的信息,通常用于统计使用。例如下订单操作的订单金额,发私信的收信用户id等。部分字段经讨论若存在普适性可能考虑迁移至`SYS`部分。
4.
`TIMER`
字段
`TIMER`字段包括所有的请求耗时信息,值以毫秒为单位。必须包括`total`子字段:
* `total`: 该请求总耗时。
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment