logger.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // https://blog.csdn.net/crazy_jialin/article/details/121673336
  2. // logger.js
  3. const log4js = require('log4js')
  4. var { logger_config } = require('../config/config.js')
  5. const BASE_PATH = logger_config.BASE_PATH
  6. log4js.configure({
  7. appenders: {
  8. consoleOut: {
  9. type: 'console',
  10. layout: {
  11. type: 'colored',
  12. },
  13. },
  14. default: {
  15. type: 'file',
  16. filename: BASE_PATH + `/denet_node_server_logger`,
  17. pattern: 'yyyy-MM-dd.log',
  18. alwaysIncludePattern: true, // 当为 true 时,log 文件名会包含之前设置的 pattern 信息 (默认为 false,但是强烈建议开启)
  19. },
  20. error: {
  21. type: 'file',
  22. filename: BASE_PATH + `/denet_node_server_logger_error`,
  23. pattern: 'yyyy-MM-dd.log',
  24. alwaysIncludePattern: true,
  25. },
  26. transfer: {
  27. type: 'file',
  28. filename: BASE_PATH + `/denet_node_server_logger_transfer`,
  29. pattern: 'yyyy-MM-dd.log',
  30. alwaysIncludePattern: true,
  31. },
  32. },
  33. categories: {
  34. default: {
  35. appenders: ['consoleOut', 'default'],
  36. level: 'all',
  37. },
  38. error: {
  39. appenders: ['consoleOut', 'error'],
  40. level: 'warn',
  41. },
  42. transfer: {
  43. appenders: ['consoleOut', 'transfer'],
  44. level: 'all',
  45. },
  46. },
  47. })
  48. const defaultLogger = log4js.getLogger('default') // 普通级别的logger,输出到控制台和日期分类的文件
  49. const errorLogger = log4js.getLogger('error') // 错误信息的logger,输出到控制台和error.log中
  50. const transferLogger = log4js.getLogger('transfer') // 转账信息的logger,输出到控制台和error.log中
  51. module.exports = {
  52. // info及以下级别的日志采用default策略,使用call函数改变this指向,否则会导致logger内部this指向报错
  53. trace() {
  54. return defaultLogger.trace.call(defaultLogger, ...arguments)
  55. },
  56. debug() {
  57. return defaultLogger.debug.call(defaultLogger, ...arguments)
  58. },
  59. info() {
  60. return defaultLogger.info.call(defaultLogger, ...arguments)
  61. },
  62. log() {
  63. return defaultLogger.debug.call(defaultLogger, ...arguments)
  64. },
  65. // warn及以上的日志采用error策略
  66. warn() {
  67. errorLogger.warn.call(errorLogger, ...arguments)
  68. },
  69. error() {
  70. errorLogger.error.call(errorLogger, ...arguments)
  71. },
  72. fatal() {
  73. errorLogger.fatal.call(errorLogger, ...arguments)
  74. },
  75. mark() {
  76. errorLogger.mark.call(errorLogger, ...arguments)
  77. },
  78. //转账log
  79. tlog(){
  80. return transferLogger.debug.call(transferLogger, ...arguments)
  81. }
  82. }
  83. //use
  84. // const logger = require('./logger')
  85. // logger.trace('trace log')
  86. // logger.debug('debug log')
  87. // logger.info('info log')
  88. // logger.warn('warn log')
  89. // logger.error('error log')
  90. // logger.fatal('fatal log')
  91. // logger.mark('mark log')