Skip to content
Xu,Yizhi edited this page Jul 28, 2015 · 8 revisions

在lark.js中有3种不同的日志,分别有不同的功能。

  • pv 日志。记录请求和返回的日志。系统默认集成
  • 自定义日志。包括捕获的warning日志,请求后端服务的 notice 日志,以及其它自定义日志。自定义日志用来记录服务请求后端服务的日志和系统的信息。自定义日志记录需要用户手工记录。
  • 错误日志。记录node.js系统抛出的错误,系统的错误日志以及其它不在pv和自定义日志中的日志。系统默认集成了系统错误日志, 用户需要自行添加业务的错误日志。

pv 日志

pv 日志主要用来计算用户pv和系统提供服务的成功率。pv日志分为 request 和 perform 两种。request 指用户请求日志,可用来计算用户pv. perform 指系统成功返回给用户结果的日志。可用来计算服务稳定性。 lark 默认在系统集成了该日志,不需手工添加.

自定义日志

自定义日志用来记录用户需要的信息,有 notice, warn, info 等方法. 各方法使用场景如下:

记录调用后端服务使用 notice 方法。例如:

require('lark/logging').notice({ 
    'talkwith': 'redis',
})

(注: require('lark/logging') 0.11 以前版本为 require('lark').logging, 下同)

记录已知的系统警告信息(一般由不会引起系统崩溃的错误引起),使用 warn 方法。 例如:

require('lark/logging').warn({'message': 'Content is too long, which over the maxLength in configure.'})

对于其它自定义信息,推荐使用 info 方法。例如:

require('lark/logging').info({'message': 'App is started. Port: 80'})

错误日志

错误日志用来记录系统错误,这些系统错误是一定需要修复的,超过一定数量还会报警。 错误日志有 fatal, error 方法,还有 node.js 打的系统日志。 lark 会把不属于pv, 自定义日志的其它所有日志归类为错误日志。

错误日志的具体使用方法:

对于捕获到的会引起系统出错的错误,使用 error 方法。

server.on("error", function(err){
    require('lark/logging').error("error message" + err)
})

捕获到的引起系统崩溃的信息,使用 fatal 方法。

try{
} catch(err){
    require('lark/logging').fatal("fatal message" + err)
}

系统要尽量保证没有错误日志输出。如果有输出错误日志,表明有错误需要修复。

调试日志

调试日志是开发时用于调试的日志,日志直接输出到终端里,并且在 production 环境下不会生效。调试日志使用方法:

require('lark/logging').debug('debug message')
require('lark/logging').log('dev message')
require('lark/logging').trace('trace message')

利用日志进行debug

  • 命令行下查看流量
cat app.log  | grep REQUEST | awk '{print $3}' | awk 'BEGIN {FS=":"} {print $1$2}' | sort | uniq -c
  • 使用命令行下查看请求后端服务流量
cat app.notice.log  | grep 'backend_name' | grep NOTICE |awk '{print $3}' | awk 'BEGIN {FS=":"} {print $1$2$3}' | sort | uniq -c
  • 查看请求后端错误情况
cat app.notice.log   | grep 'backend_name' | grep WARN| awk '{print $3}' | awk 'BEGIN {FS=":"} {print $1$2$3}' | sort | uniq -c
  • 系统上线时,查看node.log是否有日志出现。原则上 node.log 是不应该有日志的。
tail -f node.log
  • 系统出问题时,通过logid串连进行debug。

配置日志

可以通过lark.js的配置接口进行配置

var logging = require("lark/logging").configure({'logLevel':1})