日志处理

框架提供了常见的日志处理场景,包括日志打印,日志记录。

日志配置

修复项目中间件配置文件 app/config/config.js:

  1. config: {
  2. log: true, //是否存储日志
  3. log_path: process.env.ROOT_PATH + '/logs', //存储日志文件目录
  4. log_level: ['warn', 'error'], //日志存储级别, 'info', 'warn', 'error', 'success'
  5. }

logger

在项目中,可以引入 logger 来进行日志处理

  1. const {logger} = require('thinkkoa');
  2. logger.info('test'); // 打印 test

logger(type, option, …args)

自定义控制台输出。

  • type 控制台输出类型,例如 THINK, HTTP等
  • option { print: true, css: 'blue', record: true, path: path }print 是否在控制台打印日志css 控制台输出字符颜色,例如 white,grey,black,blue,cyan,green,magenta,red,yellow等record 是否保存为日志文件path 日志文件保存路径
  • …args 其余可变参数。不限制参数个数。类型为数组
  1. logger('custom', {css:'blue'}, ['测试内容']);
  2. logger('custom', {css:'green'}, ['测试:', '测试内容']);
  3. logger('custom', {css:'blue'}, [{"测试": "测试内容"}]);
  4. logger('custom', {css:'blue'}, ['测试:', '测试内容']);
  5. logger('custom', {css:'red'}, [new Error('测试内容')]);

logger.info(…args)

自定义控制台输出info类型信息。

  • …args 可变参数。不限制参数个数
  1. logger.info('测试内容');
  2. logger.info('测试:', '测试内容');
  3. logger.info({"测试": "测试内容"});
  4. logger.info(['测试:', '测试内容']);
  5. logger.info(new Error('测试内容'));

logger.success(…args)

自定义控制台输出success类型信息。

  • …args 可变参数。不限制参数个数
  1. logger.success('测试内容');
  2. logger.success('测试:', '测试内容');
  3. logger.success({"测试": "测试内容"});
  4. logger.success(['测试:', '测试内容']);
  5. logger.success(new Error('测试内容'));

logger.warn(…args)

自定义控制台输出warn类型信息。

  • …args 可变参数。不限制参数个数
  1. logger.warn('测试内容');
  2. logger.warn('测试:', '测试内容');
  3. logger.warn({"测试": "测试内容"});
  4. logger.warn(['测试:', '测试内容']);
  5. logger.warn(new Error('测试内容'));

logger.error(…args)

自定义控制台输出error类型信息。

  • …args 可变参数。不限制参数个数
  1. logger.error('测试内容');
  2. logger.error('测试:', '测试内容');
  3. logger.error({"测试": "测试内容"});
  4. logger.error(['测试:', '测试内容']);
  5. logger.error(new Error('测试内容'));

logger.write(path, name, msgs)

自定义信息写入日志文件。日志会自动按照日期切割。

  • path 日志文件保存物理路径
  • name 日志文件名
  • msgs 接收字符串类型数据
  1. //写入日志 logs/test_yyyy_mm_dd.log
  2. await logger.write(process.env.ROOT_PATH + '/logs', 'test', JSON.stringify({aa: 11}));