logger.js 1.6 KB

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