logger.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. 'use strict';
  2. const coreClass = require("../core");
  3. const config = require('config');
  4. const fs = require('fs');
  5. const twoDigits = (num) => {
  6. return (num < 10) ? '0' + num : num;
  7. };
  8. const getTime = () => {
  9. let time = new Date();
  10. return {
  11. year: time.getFullYear(),
  12. month: time.getMonth() + 1,
  13. day: time.getDate(),
  14. hour: time.getHours(),
  15. minute: time.getMinutes(),
  16. second: time.getSeconds()
  17. }
  18. };
  19. const getTimeFormatted = () => {
  20. let time = getTime();
  21. return `${time.year}-${twoDigits(time.month)}-${twoDigits(time.day)} ${twoDigits(time.hour)}:${twoDigits(time.minute)}:${twoDigits(time.second)}`;
  22. }
  23. module.exports = class extends coreClass {
  24. initialize() {
  25. return new Promise((resolve, reject) => {
  26. this.configDirectory = `${__dirname}/../../log`;
  27. if (!config.isDocker && !fs.existsSync(`${this.configDirectory}`))
  28. fs.mkdirSync(this.configDirectory);
  29. let time = getTimeFormatted();
  30. fs.appendFile(this.configDirectory + '/all.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
  31. fs.appendFile(this.configDirectory + '/success.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
  32. fs.appendFile(this.configDirectory + '/error.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
  33. fs.appendFile(this.configDirectory + '/info.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
  34. fs.appendFile(this.configDirectory + '/debugStation.log', `${time} BACKEND_RESTARTED\n`, ()=>{});
  35. resolve();
  36. });
  37. }
  38. async success(type, text, display = true) {
  39. try { await this._validateHook(); } catch { return; }
  40. const time = getTimeFormatted();
  41. const message = `${time} SUCCESS - ${type} - ${text}`;
  42. this.writeFile('all.log', message);
  43. this.writeFile('success.log', message);
  44. if (display) console.info('\x1b[32m', message, '\x1b[0m');
  45. }
  46. async error(type, text, display = true) {
  47. try { await this._validateHook(); } catch { return; }
  48. const time = getTimeFormatted();
  49. const message = `${time} ERROR - ${type} - ${text}`;
  50. this.writeFile('all.log', message);
  51. this.writeFile('error.log', message);
  52. if (display) console.warn('\x1b[31m', message, '\x1b[0m');
  53. }
  54. async info(type, text, display = true) {
  55. try { await this._validateHook(); } catch { return; }
  56. const time = getTimeFormatted();
  57. const message = `${time} INFO - ${type} - ${text}`;
  58. this.writeFile('all.log', message);
  59. this.writeFile('info.log', message);
  60. if (display) console.info('\x1b[36m', message, '\x1b[0m');
  61. }
  62. async stationIssue(text, display = false) {
  63. try { await this._validateHook(); } catch { return; }
  64. const time = getTimeFormatted();
  65. const message = `${time} DEBUG_STATION - ${text}`;
  66. this.writeFile('debugStation.log', message);
  67. if (display) console.info('\x1b[35m', message, '\x1b[0m');
  68. }
  69. writeFile(fileName, message) {
  70. fs.appendFile(`${this.configDirectory}/${fileName}`, `${message}\n`, ()=>{});
  71. }
  72. }