服务器监听8520端口
# 开发
npm run dev
# 生产
npm startconst log = require('lib/log');
log.debug(message, meta);
log.verbose(message, meta);
log.info(message, meta);
log.warn(message, meta);
log.error(message, meta);
// Example
log.verbose('I am working');
log.info('I want to show something', {
foo: 'bar'
});// 在拥有Koa上下文的环境中也可以直接使用
ctx.log.xxx(message, meta);
// true
ctx.log === require('lib/log');INFO等级以上的log会是输出到logs文件夹。- 开发环境下,任何等级的log都会输出到标准输出。
- 在任何中间件中如果出现的
Error,本次请求的上下文和错误信息会自动被log.error记录。 - 主动抛出的
Error可以设置error.expose=true,这样日志系统就会忽略这次错误。注意,当你给任何错误标注了expose,Koa会认为这个错误的相关信息是可以暴露给用户的,请谨慎使用。 unhandledRejection会被log.error无条件写入日志。
自定义的Assert可以方便地抛出用户可感知的错误(4xx), 这个自定义工具的用法与node自带的assert拥有一致的API。
const assert = require('lib/assert');
assert(false, 'You are wrong');
// 其实等于下面的语句
if (false) {
const error = new Error('You are wrong');
error.status = 400;
error.expose = true;
throw error;
}// 在拥有Koa上下文的环境中也可以直接使用
ctx.assert(condition, message);
// true
ctx.assert === require('lib/assert');