logger.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. },
  27. categories: {
  28. default: {
  29. appenders: ['consoleOut', 'default'],
  30. level: 'all',
  31. },
  32. error: {
  33. appenders: ['consoleOut', 'error'],
  34. level: 'warn',
  35. },
  36. },
  37. })
  38. const defaultLogger = log4js.getLogger('default') // 普通级别的logger,输出到控制台和日期分类的文件
  39. const errorLogger = log4js.getLogger('error') // 错误信息的logger,输出到控制台和error.log中
  40. module.exports = {
  41. // info及以下级别的日志采用default策略,使用call函数改变this指向,否则会导致logger内部this指向报错
  42. trace() {
  43. return defaultLogger.trace.call(defaultLogger, ...arguments)
  44. },
  45. debug() {
  46. return defaultLogger.debug.call(defaultLogger, ...arguments)
  47. },
  48. info() {
  49. return defaultLogger.info.call(defaultLogger, ...arguments)
  50. },
  51. log() {
  52. return defaultLogger.debug.call(defaultLogger, ...arguments)
  53. },
  54. // warn及以上的日志采用error策略
  55. warn() {
  56. errorLogger.warn.call(errorLogger, ...arguments)
  57. },
  58. error() {
  59. errorLogger.error.call(errorLogger, ...arguments)
  60. },
  61. fatal() {
  62. errorLogger.fatal.call(errorLogger, ...arguments)
  63. },
  64. mark() {
  65. errorLogger.mark.call(errorLogger, ...arguments)
  66. },
  67. }
  68. //use
  69. // const logger = require('./logger')
  70. // logger.trace('trace log')
  71. // logger.debug('debug log')
  72. // logger.info('info log')
  73. // logger.warn('warn log')
  74. // logger.error('error log')
  75. // logger.fatal('fatal log')
  76. // logger.mark('mark log')