logger.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. if (process.env.LOGGERS) {
  11. const loggers = process.env.LOGGERS.split(',') || 'console';
  12. Winston.log('info', `Loggers selected : ${ process.env.LOGGERS }, if empty default is console`);
  13. } else {
  14. const loggers = 'console';
  15. }
  16. if (loggers.includes('console')) {
  17. Winston.add(Winston.transports.Console, {
  18. json: true,
  19. timestamp: true,
  20. });
  21. }
  22. if (loggers.includes('file')) {
  23. //create logs directory
  24. fs.mkdir('logs', (err) => {
  25. if (err) throw err;
  26. });
  27. const fileName = `logs/${process.env.LOGGER_FILE_NAME}` || 'logs/server.log';
  28. Winston.add(Winston.transports.File, {
  29. filename: fileName,
  30. json: true,
  31. options: {
  32. flags: 'a+',
  33. },
  34. });
  35. }
  36. if (loggers.includes('zulip')) {
  37. const loggerZulipUsername = process.env.LOGGER_ZULIP_USERNAME;
  38. const loggerZulipApikey = process.env.LOGGER_ZULIP_APIKEY;
  39. const loggerZulipRealm = process.env.LOGGER_ZULIP_REALM;
  40. const loggerZulipTo = process.env.LOGGER_ZULIP_TO || 'logs';
  41. const loggerZulipSubject = process.env.LOGGER_ZULIP_SUBJECT || 'wekan';
  42. const zulipConfig = {
  43. zulipUsername: loggerZulipUsername,
  44. zulipApikey: loggerZulipApikey,
  45. zulipRealm: loggerZulipRealm,
  46. zulipTo: loggerZulipTo,
  47. zulipSubject: loggerZulipSubject,
  48. };
  49. Winston.add(Winston.transports.Zulip, zulipConfig);
  50. Winston.log('info', `zulipconfig ${zulipConfig}`);
  51. }
  52. }
  53. Winston.log('info', 'Logger is completly instanciate');
  54. });