2
0

logger.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. Meteor.startup(() => {
  2. Winston = require('winston');
  3. require('winston-zulip');
  4. const fs = require('fs');
  5. //remove default logger
  6. Winston.remove(Winston.transports.Console);
  7. const loggerEnable = process.env.LOGGER_ENABLE || true;
  8. if (loggerEnable) {
  9. Winston.log('info', 'logger is enable');
  10. const loggers = process.env.LOGGERS ? process.env.LOGGERS.split(',') : 'console';
  11. if (loggers.includes('console')) {
  12. Winston.add(Winston.transports.Console, {
  13. json: true,
  14. timestamp: true,
  15. });
  16. }
  17. if (loggers.includes('file')) {
  18. //create logs directory
  19. fs.mkdir('logs', (err) => {
  20. if (err) throw err;
  21. });
  22. const fileName = `logs/${process.env.LOGGER_FILE_NAME}` || 'logs/server.log';
  23. Winston.add(Winston.transports.File, {
  24. filename: fileName,
  25. json: true,
  26. options: {
  27. flags: 'a+',
  28. },
  29. });
  30. }
  31. if (loggers.includes('zulip')) {
  32. const loggerZulipUsername = process.env.LOGGER_ZULIP_USERNAME;
  33. const loggerZulipApikey = process.env.LOGGER_ZULIP_APIKEY;
  34. const loggerZulipRealm = process.env.LOGGER_ZULIP_REALM;
  35. const loggerZulipTo = process.env.LOGGER_ZULIP_TO || 'logs';
  36. const loggerZulipSubject = process.env.LOGGER_ZULIP_SUBJECT || 'wekan';
  37. const zulipConfig = {
  38. zulipUsername: loggerZulipUsername,
  39. zulipApikey: loggerZulipApikey,
  40. zulipRealm: loggerZulipRealm,
  41. zulipTo: loggerZulipTo,
  42. zulipSubject: loggerZulipSubject,
  43. };
  44. Winston.add(Winston.transports.Zulip, zulipConfig);
  45. Winston.log('info', `zulipconfig ${zulipConfig}`);
  46. }
  47. }
  48. Winston.log('info', 'Logger is completly instanciate');
  49. });