Baphomet is the dedicated bot for nulloctet matrix
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.4 KiB

  1. let winston = require('winston');
  2. require('winston-daily-rotate-file');
  3. let errorTransport = new (winston.transports.DailyRotateFile)({
  4. level: 'error',
  5. filename: 'log/error-%DATE%.log',
  6. datePattern: 'YYYY-MM-DD',
  7. zippedArchive: true,
  8. maxFiles: '7d'
  9. });
  10. let combinedTransport = new (winston.transports.DailyRotateFile)({
  11. filename: 'log/combined-%DATE%.log',
  12. datePattern: 'YYYY-MM-DD',
  13. zippedArchive: true,
  14. maxFiles: '7d'
  15. });
  16. let logger = winston.createLogger({
  17. level: 'info',
  18. format: winston.format.combine(
  19. winston.format.timestamp(),
  20. winston.format.splat(),
  21. winston.format.simple()
  22. ),
  23. defaultMeta: { service: 'baphomet-js' },
  24. transports: [
  25. errorTransport,
  26. combinedTransport
  27. ]
  28. });
  29. if (process.env.NODE_ENV !== 'production') {
  30. logger.add(new winston.transports.Console({
  31. format: winston.format.combine(
  32. winston.format.colorize(),
  33. winston.format.simple()
  34. )
  35. }));
  36. } else {
  37. logger.add(new winston.transports.Console({
  38. level: 'error',
  39. format: winston.format.combine(
  40. winston.format.colorize(),
  41. winston.format.simple()
  42. )
  43. }));
  44. }
  45. if ('LOG_LEVEL' in process.env) {
  46. logger.info('LOG_LEVEL: %s', process.env.LOG_LEVEL)
  47. logger.level = process.env.LOG_LEVEL
  48. }
  49. export { logger };