使用nodejs+log4js来输出日志 log4js版本:^3.0.0

参考中文文档:http://www.wangweilin.net/static/pages/log4js-node.html

  1. // 当前日志需求:
  2. // - 请求外部的接口(如sina接口)报错时写入sina.xau.error.log中
  3. // - 内部分析数据时出可知异常时写入rich.xau.log中
  4. // - 内部分析数据时正常时写入rich.xau.log中
  5. // log4js 中文文档 http://www.wangweilin.net/static/pages/log4js-node.html
  6. const log4js = require('log4js');
  7. const path = require('path');
  8. // 日志输出位置
  9. const XAU_LOG = path.resolve(__dirname, '../../log/sina.xau.error');
  10. const RICH_XAU_LOG = path.resolve(__dirname, '../../log/rich.xau');
  11. // log级别为8级 ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF。(不区分大小写)
  12. // 日志输出类型:file文件,console控制台,dateFile按时间变化的文件(一天创建一个日志文件)
  13. log4js.configure({
  14. // pm2要设置为true
  15. pm2: true,
  16. // 输出到哪
  17. appenders: {
  18. // 普通的控制台输出类型
  19. console: {
  20. type: 'console', // 日志类型
  21. },
  22. // sina伦敦金的日志
  23. sinaXAU: {
  24. type: 'dateFile', // 日志类型
  25. filename: XAU_LOG, //日志名
  26. maxLogSize: 10000000, // 日志的最大大小
  27. encoding: 'utf-8', // 日志编码
  28. pattern: '.yyyy-MM-dd.log', // 日志名后缀的模板
  29. alwaysIncludePattern: true, // 和pattern同时使用 设置每天生成log名
  30. },
  31. // 内部处理伦敦金数据的日志
  32. richXAU: {
  33. type: 'dateFile', // 日志类型文字
  34. filename: RICH_XAU_LOG, //日志名
  35. maxLogSize: 10000000, // 日志的最大大小
  36. encoding: 'utf-8', // 日志编码
  37. pattern: '.yyyy-MM-dd.log', // 日志名后缀的模板
  38. alwaysIncludePattern: true, // 和pattern同时使用 设置每天生成log名
  39. },
  40. },
  41. /**
  42. * 日志的分类
  43. * default:必填当所有的日志没有匹配到对应的分类时会使用该分类进行输出
  44. * appenders:匹配上后使用哪些appenders
  45. * level:输出等级过滤
  46. */
  47. categories: {
  48. // 默认分类,当所有的日志没有匹配到对应的分类时会使用该分类进行输出
  49. default: {
  50. appenders: [
  51. 'console',
  52. ],
  53. level: 'all',
  54. },
  55. // 伦敦金错误日志
  56. sinaXAU: {
  57. appenders: [
  58. 'sinaXAU',
  59. ],
  60. level: 'error'
  61. },
  62. // 项目处理日志
  63. richXAU: {
  64. appenders: [
  65. 'richXAU',
  66. ],
  67. level: 'info'
  68. }
  69. }
  70. });
  71. const sinaXauLog = log4js.getLogger('sinaXAU');
  72. const richXauLog = log4js.getLogger('richXAU');
  73. // 伦敦金日志(由于日志错误级别是error,info和warn会被过滤掉)
  74. sinaXAU.info('sinaXAU_info');
  75. sinaXAU.warn('sinaXAU_warn');
  76. sinaXAU.error('sinaXAU_error');
  77. // 致富项目日志(由于日志错误级别是info,debug会被过滤掉)
  78. richXAU.debug('richXAU_debug');
  79. richXAU.info('richXAU_info');
  80. richXAU.warn('richXAU_warn');
  81. richXAU.error('richXAU_error');