@eggjs/logrotator 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +9 -9
  2. package/README.zh-CN.md +10 -10
  3. package/dist/commonjs/app/schedule/clean_log.d.ts +1 -1
  4. package/dist/commonjs/app/schedule/clean_log.js +7 -6
  5. package/dist/commonjs/app/schedule/rotate_by_file.d.ts +1 -1
  6. package/dist/commonjs/app/schedule/rotate_by_hour.d.ts +1 -1
  7. package/dist/commonjs/app/schedule/rotate_by_hour.js +1 -1
  8. package/dist/commonjs/app/schedule/rotate_by_size.d.ts +1 -1
  9. package/dist/commonjs/boot.js +1 -1
  10. package/dist/commonjs/config/config.default.js +2 -2
  11. package/dist/commonjs/lib/day_rotator.d.ts +1 -1
  12. package/dist/commonjs/lib/day_rotator.js +11 -9
  13. package/dist/commonjs/lib/hour_rotator.d.ts +1 -1
  14. package/dist/commonjs/lib/hour_rotator.js +6 -2
  15. package/dist/commonjs/lib/rotator.d.ts +1 -1
  16. package/dist/commonjs/lib/rotator.js +7 -4
  17. package/dist/commonjs/lib/size_rotator.d.ts +1 -1
  18. package/dist/commonjs/lib/size_rotator.js +3 -2
  19. package/dist/commonjs/lib/utils.d.ts +0 -1
  20. package/dist/commonjs/lib/utils.js +2 -7
  21. package/dist/esm/app/schedule/clean_log.d.ts +1 -1
  22. package/dist/esm/app/schedule/clean_log.js +7 -6
  23. package/dist/esm/app/schedule/rotate_by_file.d.ts +1 -1
  24. package/dist/esm/app/schedule/rotate_by_hour.d.ts +1 -1
  25. package/dist/esm/app/schedule/rotate_by_hour.js +1 -1
  26. package/dist/esm/app/schedule/rotate_by_size.d.ts +1 -1
  27. package/dist/esm/boot.js +1 -1
  28. package/dist/esm/config/config.default.js +2 -2
  29. package/dist/esm/lib/day_rotator.d.ts +1 -1
  30. package/dist/esm/lib/day_rotator.js +11 -9
  31. package/dist/esm/lib/hour_rotator.d.ts +1 -1
  32. package/dist/esm/lib/hour_rotator.js +6 -2
  33. package/dist/esm/lib/rotator.d.ts +1 -1
  34. package/dist/esm/lib/rotator.js +7 -4
  35. package/dist/esm/lib/size_rotator.d.ts +1 -1
  36. package/dist/esm/lib/size_rotator.js +3 -2
  37. package/dist/esm/lib/utils.d.ts +0 -1
  38. package/dist/esm/lib/utils.js +2 -7
  39. package/dist/package.json +1 -1
  40. package/package.json +17 -7
  41. package/src/app/schedule/clean_log.ts +30 -17
  42. package/src/app/schedule/rotate_by_file.ts +1 -1
  43. package/src/app/schedule/rotate_by_hour.ts +1 -2
  44. package/src/app/schedule/rotate_by_size.ts +1 -1
  45. package/src/boot.ts +4 -1
  46. package/src/config/config.default.ts +1 -1
  47. package/src/lib/day_rotator.ts +17 -10
  48. package/src/lib/hour_rotator.ts +11 -3
  49. package/src/lib/rotator.ts +28 -9
  50. package/src/lib/size_rotator.ts +13 -5
  51. package/src/lib/utils.ts +4 -7
@@ -30,10 +30,14 @@ export class HourRotator extends LogRotator {
30
30
  _setFile(srcPath, files) {
31
31
  if (!files.has(srcPath)) {
32
32
  const ext = this.app.config.logrotator.gzip === true ? '.gz' : '';
33
- const targetPath = srcPath + moment().subtract(1, 'hours').format(`.YYYY-MM-DD${this.hourDelimiter}HH`) + ext;
33
+ const targetPath = srcPath +
34
+ moment()
35
+ .subtract(1, 'hours')
36
+ .format(`.YYYY-MM-DD${this.hourDelimiter}HH`) +
37
+ ext;
34
38
  debug('set file %s => %s', srcPath, targetPath);
35
39
  files.set(srcPath, { srcPath, targetPath });
36
40
  }
37
41
  }
38
42
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91cl9yb3RhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ob3VyX3JvdGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLGNBQWMsQ0FBQztBQUV0RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUU3RCxxQkFBcUI7QUFDckIsK0NBQStDO0FBQy9DLE1BQU0sT0FBTyxXQUFZLFNBQVEsVUFBVTtJQUN6QyxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztRQUU3RSxLQUFLLElBQUksT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEMsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLFNBQVM7WUFDWCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUNsRCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQWUsRUFBRSxLQUE4QjtRQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxNQUFNLFVBQVUsR0FBRyxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDOUcsS0FBSyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNoRCxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91cl9yb3RhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ob3VyX3JvdGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFakMsT0FBTyxFQUFFLFVBQVUsRUFBbUIsTUFBTSxjQUFjLENBQUM7QUFFM0QsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFFN0QscUJBQXFCO0FBQ3JCLCtDQUErQztBQUMvQyxNQUFNLE9BQU8sV0FBWSxTQUFRLFVBQVU7SUFDekMsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUMxQyxNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO1FBRXJELEtBQUssSUFBSSxPQUFPLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0Qyx3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsU0FBUztZQUNYLENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ2xELENBQUM7SUFFRCxRQUFRLENBQUMsT0FBZSxFQUFFLEtBQThCO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sVUFBVSxHQUNkLE9BQU87Z0JBQ1AsTUFBTSxFQUFFO3FCQUNMLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO3FCQUNwQixNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUM7Z0JBQy9DLEdBQUcsQ0FBQztZQUNOLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDaEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -1,4 +1,4 @@
1
- import { EggCore } from '@eggjs/core';
1
+ import type { EggCore } from '@eggjs/core';
2
2
  export interface RotatorOptions {
3
3
  app: EggCore;
4
4
  }
@@ -26,12 +26,15 @@ export class LogRotator {
26
26
  await renameOrDelete(file.srcPath, file.targetPath, this.app.config.logrotator.gzip);
27
27
  rotatedFiles.push(`${file.srcPath} -> ${file.targetPath}`);
28
28
  }
29
- catch (err) {
30
- err.message = `[@eggjs/logrotator] rename ${file.srcPath}, found exception: ` + err.message;
29
+ catch (e) {
30
+ const err = e;
31
+ err.message =
32
+ `[@eggjs/logrotator] rename ${file.srcPath}, found exception: ` +
33
+ err.message;
31
34
  this.logger.error(err);
32
35
  }
33
36
  }
34
- if (rotatedFiles.length) {
37
+ if (rotatedFiles.length > 0) {
35
38
  // tell every one to reload logger
36
39
  this.logger.info('[@eggjs/logrotator] broadcast log-reload');
37
40
  this.app.messenger.sendToApp('log-reload');
@@ -68,4 +71,4 @@ async function renameOrDelete(srcPath, targetPath, gzip) {
68
71
  await fs.rename(srcPath, targetPath);
69
72
  }
70
73
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcm90YXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdqQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQVd4RCxNQUFNLE9BQWdCLFVBQVU7SUFDWCxPQUFPLENBQWlCO0lBQ3hCLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBd0I7SUFFakQsWUFBWSxPQUF1QjtRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDcEMsQ0FBQztJQUlELEtBQUssQ0FBQyxNQUFNO1FBQ1YsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUMsTUFBTSxDQUFDLEtBQUssWUFBWSxHQUFHLEVBQUUsb0NBQW9DLENBQUMsQ0FBQztRQUNuRSxNQUFNLFlBQVksR0FBYSxF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
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcm90YXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdqQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQVd4RCxNQUFNLE9BQWdCLFVBQVU7SUFDWCxPQUFPLENBQWlCO0lBQ3hCLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBd0I7SUFFakQsWUFBWSxPQUF1QjtRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDcEMsQ0FBQztJQUlELEtBQUssQ0FBQyxNQUFNO1FBQ1YsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUMsTUFBTSxDQUFDLEtBQUssWUFBWSxHQUFHLEVBQUUsb0NBQW9DLENBQUMsQ0FBQztRQUNuRSxNQUFNLFlBQVksR0FBYSxF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
@@ -1,4 +1,4 @@
1
- import { LogRotator, RotateFile } from './rotator.js';
1
+ import { LogRotator, type RotateFile } from './rotator.js';
2
2
  export declare class SizeRotator extends LogRotator {
3
3
  getRotateFiles(): Promise<Map<string, RotateFile>>;
4
4
  _setFile(logPath: string, files: Map<string, RotateFile>): void;
@@ -37,7 +37,8 @@ export class SizeRotator extends LogRotator {
37
37
  this._setFile(logPath, files);
38
38
  }
39
39
  }
40
- catch (err) {
40
+ catch (e) {
41
+ const err = e;
41
42
  err.message = '[@eggjs/logrotator] ' + err.message;
42
43
  this.logger.error(err);
43
44
  }
@@ -63,4 +64,4 @@ export class SizeRotator extends LogRotator {
63
64
  files.set(logPath, { srcPath: logPath, targetPath: `${logPath}.1${ext}` });
64
65
  }
65
66
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZV9yb3RhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zaXplX3JvdGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBRXRELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBRTdELDREQUE0RDtBQUM1RCwyQ0FBMkM7QUFDM0MsMERBQTBEO0FBQzFELE1BQU0sT0FBTyxXQUFZLFNBQVEsVUFBVTtJQUN6QyxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztRQUM3RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQzNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDckQsS0FBSyxJQUFJLE9BQU8sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RDLHdCQUF3QjtZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFD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
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZV9yb3RhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zaXplX3JvdGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVqQyxPQUFPLEVBQUUsVUFBVSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUUzRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUU3RCw0REFBNEQ7QUFDNUQsMkNBQTJDO0FBQzNDLDBEQUEwRDtBQUMxRCxNQUFNLE9BQU8sV0FBWSxTQUFRLFVBQVU7SUFDekMsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUMxQyxNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNyRCxLQUFLLElBQUksT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEMsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENB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
@@ -5,7 +5,6 @@ interface LoggerTransport {
5
5
  }
6
6
  /**
7
7
  * Walk all logger files from loggers
8
- * @param loggers - The loggers to walk
9
8
  */
10
9
  export declare function walkLoggerFile(loggers: Record<string, Map<string, LoggerTransport>>): string[];
11
10
  export {};
@@ -1,14 +1,9 @@
1
1
  /**
2
2
  * Walk all logger files from loggers
3
- * @param loggers - The loggers to walk
4
3
  */
5
4
  export function walkLoggerFile(loggers) {
6
5
  const files = [];
7
- for (const key in loggers) {
8
- if (!loggers.hasOwnProperty(key)) {
9
- continue;
10
- }
11
- const registeredLogger = loggers[key];
6
+ for (const registeredLogger of Object.values(loggers)) {
12
7
  for (const transport of registeredLogger.values()) {
13
8
  const file = transport.options.file;
14
9
  if (file) {
@@ -18,4 +13,4 @@ export function walkLoggerFile(loggers) {
18
13
  }
19
14
  return files;
20
15
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBcUQ7SUFDbEYsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBQzNCLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxTQUFTO1FBQ1gsQ0FBQztRQUNELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLEtBQUssTUFBTSxTQUFTLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNsRCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNwQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIn0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsT0FBcUQ7SUFFckQsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBQzNCLEtBQUssTUFBTSxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDdEQsS0FBSyxNQUFNLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3BDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMifQ==
package/dist/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@eggjs/logrotator",
3
- "version": "4.0.0"
3
+ "version": "4.1.0"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/logrotator",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -42,16 +42,18 @@
42
42
  "utility": "^2.5.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@arethetypeswrong/cli": "^0.17.3",
45
+ "@arethetypeswrong/cli": "^0.17.4",
46
46
  "@eggjs/bin": "7",
47
- "@eggjs/mock": "^6.0.5",
47
+ "@eggjs/mock": "^6.0.6",
48
48
  "@eggjs/tsconfig": "1",
49
49
  "@types/mocha": "10",
50
50
  "@types/node": "22",
51
51
  "egg": "^4.0.5",
52
52
  "egg-logger": "^3.6.1",
53
- "eslint": "8",
54
- "eslint-config-egg": "14",
53
+ "husky": "9",
54
+ "lint-staged": "15",
55
+ "oxlint": "^0.16.2",
56
+ "prettier": "3",
55
57
  "glob": "^11.0.1",
56
58
  "rimraf": "6",
57
59
  "snap-shot-it": "^7.9.10",
@@ -61,7 +63,7 @@
61
63
  "typescript": "5"
62
64
  },
63
65
  "scripts": {
64
- "lint": "eslint --cache src test --ext .ts",
66
+ "lint": "oxlint",
65
67
  "pretest": "npm run clean && npm run lint -- --fix",
66
68
  "test": "egg-bin test",
67
69
  "test:snapshot:update": "SNAPSHOT_UPDATE=1 egg-bin test",
@@ -69,7 +71,15 @@
69
71
  "ci": "egg-bin cov",
70
72
  "postci": "npm run prepublishOnly && npm run clean",
71
73
  "clean": "rimraf dist",
72
- "prepublishOnly": "tshy && tshy-after && attw --pack"
74
+ "prepublishOnly": "tshy && tshy-after && attw --pack",
75
+ "prepare": "husky"
76
+ },
77
+ "lint-staged": {
78
+ "*": "prettier --write --ignore-unknown --cache",
79
+ "*.{ts,js,json,md,yml}": [
80
+ "prettier --ignore-unknown --write",
81
+ "oxlint --fix"
82
+ ]
73
83
  },
74
84
  "type": "module",
75
85
  "tshy": {
@@ -1,8 +1,10 @@
1
1
  import path from 'node:path';
2
2
  import fs from 'node:fs/promises';
3
+
3
4
  import { exists } from 'utility';
4
5
  import moment from 'moment';
5
- import { EggCore } from '@eggjs/core';
6
+ import type { EggCore } from '@eggjs/core';
7
+
6
8
  import { walkLoggerFile } from '../../lib/utils.js';
7
9
 
8
10
  // clean all xxx.log.YYYY-MM-DD before expired date.
@@ -16,14 +18,16 @@ export default (app: EggCore) => ({
16
18
  const logger = app.coreLogger;
17
19
  const logDirs = new Set<string>();
18
20
  const loggerFiles = walkLoggerFile(app.loggers);
19
- loggerFiles.forEach(file => {
21
+ for (const file of loggerFiles) {
20
22
  const logDir = path.dirname(file);
21
23
  logDirs.add(logDir);
22
- });
24
+ }
23
25
  const maxDays = app.config.logrotator.maxDays;
24
26
  if (maxDays && maxDays > 0) {
25
27
  try {
26
- const tasks = Array.from(logDirs, logDir => removeExpiredLogFiles(logDir, maxDays, logger));
28
+ const tasks = Array.from(logDirs, logDir =>
29
+ removeExpiredLogFiles(logDir, maxDays, logger)
30
+ );
27
31
  await Promise.all(tasks);
28
32
  } catch (err) {
29
33
  logger.error(err);
@@ -35,7 +39,11 @@ export default (app: EggCore) => ({
35
39
  });
36
40
 
37
41
  // remove expired log files: xxx.log.YYYY-MM-DD
38
- async function removeExpiredLogFiles(logDir: string, maxDays: number, logger: EggCore['coreLogger']) {
42
+ async function removeExpiredLogFiles(
43
+ logDir: string,
44
+ maxDays: number,
45
+ logger: EggCore['coreLogger']
46
+ ) {
39
47
  // ignore not exists dir
40
48
  const stat = await exists(logDir);
41
49
  if (!stat) {
@@ -46,8 +54,8 @@ async function removeExpiredLogFiles(logDir: string, maxDays: number, logger: Eg
46
54
  const files = await fs.readdir(logDir);
47
55
  const expiredDate = moment().subtract(maxDays, 'days').startOf('date');
48
56
  const names = files.filter(file => {
49
- const name = path.extname(file).substring(1);
50
- if (!/^\d{4}\-\d{2}\-\d{2}/.test(name)) {
57
+ const name = path.extname(file).slice(1);
58
+ if (!/^\d{4}-\d{2}-\d{2}/.test(name)) {
51
59
  return false;
52
60
  }
53
61
  const date = moment(name, 'YYYY-MM-DD').startOf('date');
@@ -60,15 +68,20 @@ async function removeExpiredLogFiles(logDir: string, maxDays: number, logger: Eg
60
68
  return;
61
69
  }
62
70
 
63
- logger.info(`[@eggjs/logrotator] start remove ${logDir} files: ${names.join(', ')}`);
71
+ logger.info(
72
+ `[@eggjs/logrotator] start remove ${logDir} files: ${names.join(', ')}`
73
+ );
64
74
 
65
- await Promise.all(names.map(async name => {
66
- const logFile = path.join(logDir, name);
67
- try {
68
- await fs.unlink(logFile);
69
- } catch (err: any) {
70
- err.message = `[@eggjs/logrotator] remove logFile ${logFile} error, ${err.message}`;
71
- logger.error(err);
72
- }
73
- }));
75
+ await Promise.all(
76
+ names.map(async name => {
77
+ const logFile = path.join(logDir, name);
78
+ try {
79
+ await fs.unlink(logFile);
80
+ } catch (e) {
81
+ const err = e as Error;
82
+ err.message = `[@eggjs/logrotator] remove logFile ${logFile} error, ${err.message}`;
83
+ logger.error(err);
84
+ }
85
+ })
86
+ );
74
87
  }
@@ -1,4 +1,4 @@
1
- import { EggCore } from '@eggjs/core';
1
+ import type { EggCore } from '@eggjs/core';
2
2
  import { DayRotator } from '../../lib/day_rotator.js';
3
3
 
4
4
  export default (app: EggCore) => {
@@ -1,4 +1,4 @@
1
- import { EggCore } from '@eggjs/core';
1
+ import type { EggCore } from '@eggjs/core';
2
2
  import { HourRotator } from '../../lib/hour_rotator.js';
3
3
 
4
4
  export default (app: EggCore) => {
@@ -14,6 +14,5 @@ export default (app: EggCore) => {
14
14
  async task() {
15
15
  await rotator.rotate();
16
16
  },
17
-
18
17
  };
19
18
  };
@@ -1,4 +1,4 @@
1
- import { EggCore } from '@eggjs/core';
1
+ import type { EggCore } from '@eggjs/core';
2
2
  import { SizeRotator } from '../../lib/size_rotator.js';
3
3
 
4
4
  export default (app: EggCore) => {
package/src/boot.ts CHANGED
@@ -7,7 +7,10 @@ export class Boot implements ILifecycleBoot {
7
7
  // reload logger to new fd after rotating
8
8
  this.app.messenger.on('log-reload', () => {
9
9
  this.app.loggers.reload();
10
- this.app.coreLogger.info('[@eggjs/logrotator] %s logger reload: got log-reload message', this.app.type);
10
+ this.app.coreLogger.info(
11
+ '[@eggjs/logrotator] %s logger reload: got log-reload message',
12
+ this.app.type
13
+ );
11
14
  });
12
15
  }
13
16
  }
@@ -67,7 +67,7 @@ export default {
67
67
  filesRotateBySize: null,
68
68
  maxFileSize: 50 * 1024 * 1024,
69
69
  maxFiles: 10,
70
- rotateDuration: 60000,
70
+ rotateDuration: 60_000,
71
71
  maxDays: 31,
72
72
  gzip: false,
73
73
  } as LogrotatorConfig,
@@ -2,8 +2,10 @@ import path from 'node:path';
2
2
  import moment from 'moment';
3
3
  import fs from 'node:fs/promises';
4
4
  import { debuglog } from 'node:util';
5
+
5
6
  import { exists } from 'utility';
6
- import { LogRotator, RotateFile, RotatorOptions } from './rotator.js';
7
+
8
+ import { LogRotator, type RotateFile, type RotatorOptions } from './rotator.js';
7
9
  import { walkLoggerFile } from './utils.js';
8
10
 
9
11
  const debug = debuglog('@eggjs/logrotator/lib/day_rotator');
@@ -25,13 +27,13 @@ export class DayRotator extends LogRotator {
25
27
  const logDir = this.app.config.logger.dir;
26
28
  const loggers = this.app.loggers;
27
29
  const loggerFiles = walkLoggerFile(loggers);
28
- loggerFiles.forEach(file => {
30
+ for (let file of loggerFiles) {
29
31
  // support relative path
30
32
  if (!path.isAbsolute(file)) {
31
33
  file = path.join(logDir, file);
32
34
  }
33
35
  this._setFile(file, files);
34
- });
36
+ }
35
37
 
36
38
  // Should rotate agent log, because schedule is running under app worker,
37
39
  // agent log is the only difference between app worker and agent worker.
@@ -43,7 +45,9 @@ export class DayRotator extends LogRotator {
43
45
  // rotateLogDirs is deprecated
44
46
  const rotateLogDirs = this.app.config.logger.rotateLogDirs;
45
47
  if (rotateLogDirs && rotateLogDirs.length > 0) {
46
- this.app.deprecate('[egg-logrotator] Do not use app.config.logger.rotateLogDirs, only rotate core loggers and custom loggers');
48
+ this.app.deprecate(
49
+ '[egg-logrotator] Do not use app.config.logger.rotateLogDirs, only rotate core loggers and custom loggers'
50
+ );
47
51
 
48
52
  for (const dir of rotateLogDirs) {
49
53
  const stat = await exists(dir);
@@ -68,22 +72,25 @@ export class DayRotator extends LogRotator {
68
72
 
69
73
  _setFile(srcPath: string, files: Map<string, RotateFile>) {
70
74
  // don't rotate logPath in filesRotateBySize
71
- if (this.filesRotateBySize.indexOf(srcPath) > -1) {
75
+ if (this.filesRotateBySize.includes(srcPath)) {
72
76
  return;
73
77
  }
74
78
 
75
79
  // don't rotate logPath in filesRotateByHour
76
- if (this.filesRotateByHour.indexOf(srcPath) > -1) {
80
+ if (this.filesRotateByHour.includes(srcPath)) {
77
81
  return;
78
82
  }
79
83
 
80
84
  if (!files.has(srcPath)) {
81
85
  const ext = this.app.config.logrotator.gzip === true ? '.gz' : '';
82
86
  // allow 2 minutes deviation
83
- const targetPath = srcPath + moment()
84
- .subtract(23, 'hours')
85
- .subtract(58, 'minutes')
86
- .format('.YYYY-MM-DD') + ext;
87
+ const targetPath =
88
+ srcPath +
89
+ moment()
90
+ .subtract(23, 'hours')
91
+ .subtract(58, 'minutes')
92
+ .format('.YYYY-MM-DD') +
93
+ ext;
87
94
  debug('set file %s => %s', srcPath, targetPath);
88
95
  files.set(srcPath, { srcPath, targetPath });
89
96
  }
@@ -1,8 +1,10 @@
1
1
  import moment from 'moment';
2
2
  import path from 'node:path';
3
3
  import { debuglog } from 'node:util';
4
+
4
5
  import { exists } from 'utility';
5
- import { LogRotator, RotateFile } from './rotator.js';
6
+
7
+ import { LogRotator, type RotateFile } from './rotator.js';
6
8
 
7
9
  const debug = debuglog('@eggjs/logrotator/lib/hour_rotator');
8
10
 
@@ -12,7 +14,8 @@ export class HourRotator extends LogRotator {
12
14
  async getRotateFiles() {
13
15
  const files = new Map<string, RotateFile>();
14
16
  const logDir = this.app.config.logger.dir;
15
- const filesRotateByHour = this.app.config.logrotator.filesRotateByHour || [];
17
+ const filesRotateByHour =
18
+ this.app.config.logrotator.filesRotateByHour || [];
16
19
 
17
20
  for (let logPath of filesRotateByHour) {
18
21
  // support relative path
@@ -36,7 +39,12 @@ export class HourRotator extends LogRotator {
36
39
  _setFile(srcPath: string, files: Map<string, RotateFile>) {
37
40
  if (!files.has(srcPath)) {
38
41
  const ext = this.app.config.logrotator.gzip === true ? '.gz' : '';
39
- const targetPath = srcPath + moment().subtract(1, 'hours').format(`.YYYY-MM-DD${this.hourDelimiter}HH`) + ext;
42
+ const targetPath =
43
+ srcPath +
44
+ moment()
45
+ .subtract(1, 'hours')
46
+ .format(`.YYYY-MM-DD${this.hourDelimiter}HH`) +
47
+ ext;
40
48
  debug('set file %s => %s', srcPath, targetPath);
41
49
  files.set(srcPath, { srcPath, targetPath });
42
50
  }
@@ -4,8 +4,9 @@ import fs from 'node:fs/promises';
4
4
  import { pipeline } from 'node:stream/promises';
5
5
  import { createGzip } from 'node:zlib';
6
6
  import { debuglog } from 'node:util';
7
+
7
8
  import { exists } from 'utility';
8
- import { EggCore } from '@eggjs/core';
9
+ import type { EggCore } from '@eggjs/core';
9
10
 
10
11
  const debug = debuglog('@eggjs/logrotator/lib/rotator');
11
12
 
@@ -39,29 +40,43 @@ export abstract class LogRotator {
39
40
  for (const file of files.values()) {
40
41
  try {
41
42
  debug('rename from %s to %s', file.srcPath, file.targetPath);
42
- await renameOrDelete(file.srcPath, file.targetPath, this.app.config.logrotator.gzip);
43
+ await renameOrDelete(
44
+ file.srcPath,
45
+ file.targetPath,
46
+ this.app.config.logrotator.gzip
47
+ );
43
48
  rotatedFiles.push(`${file.srcPath} -> ${file.targetPath}`);
44
- } catch (err: any) {
45
- err.message = `[@eggjs/logrotator] rename ${file.srcPath}, found exception: ` + err.message;
49
+ } catch (e) {
50
+ const err = e as Error;
51
+ err.message =
52
+ `[@eggjs/logrotator] rename ${file.srcPath}, found exception: ` +
53
+ err.message;
46
54
  this.logger.error(err);
47
55
  }
48
56
  }
49
57
 
50
- if (rotatedFiles.length) {
58
+ if (rotatedFiles.length > 0) {
51
59
  // tell every one to reload logger
52
60
  this.logger.info('[@eggjs/logrotator] broadcast log-reload');
53
61
  this.app.messenger.sendToApp('log-reload');
54
62
  this.app.messenger.sendToAgent('log-reload');
55
63
  }
56
64
 
57
- this.logger.info('[@eggjs/logrotator] rotate files success by %s, files %j',
58
- this.constructor.name, rotatedFiles);
65
+ this.logger.info(
66
+ '[@eggjs/logrotator] rotate files success by %s, files %j',
67
+ this.constructor.name,
68
+ rotatedFiles
69
+ );
59
70
  }
60
71
  }
61
72
 
62
73
  // rename from srcPath to targetPath, for example foo.log.1 > foo.log.2
63
74
  // if gzip is true, then use gzip to compress the file, and delete the src file, for example foo.log.1 -> foo.log.2.gz
64
- async function renameOrDelete(srcPath: string, targetPath: string, gzip: boolean) {
75
+ async function renameOrDelete(
76
+ srcPath: string,
77
+ targetPath: string,
78
+ gzip: boolean
79
+ ) {
65
80
  if (srcPath === targetPath) {
66
81
  return;
67
82
  }
@@ -80,7 +95,11 @@ async function renameOrDelete(srcPath: string, targetPath: string, gzip: boolean
80
95
  if (gzip === true) {
81
96
  const tmpPath = `${targetPath}.tmp`;
82
97
  await fs.rename(srcPath, tmpPath);
83
- await pipeline(createReadStream(tmpPath), createGzip(), createWriteStream(targetPath));
98
+ await pipeline(
99
+ createReadStream(tmpPath),
100
+ createGzip(),
101
+ createWriteStream(targetPath)
102
+ );
84
103
  await fs.unlink(tmpPath);
85
104
  } else {
86
105
  await fs.rename(srcPath, targetPath);
@@ -1,8 +1,10 @@
1
1
  import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { debuglog } from 'node:util';
4
+
4
5
  import { exists } from 'utility';
5
- import { LogRotator, RotateFile } from './rotator.js';
6
+
7
+ import { LogRotator, type RotateFile } from './rotator.js';
6
8
 
7
9
  const debug = debuglog('@eggjs/logrotator/lib/size_rotator');
8
10
 
@@ -13,7 +15,8 @@ export class SizeRotator extends LogRotator {
13
15
  async getRotateFiles() {
14
16
  const files = new Map<string, RotateFile>();
15
17
  const logDir = this.app.config.logger.dir;
16
- const filesRotateBySize = this.app.config.logrotator.filesRotateBySize || [];
18
+ const filesRotateBySize =
19
+ this.app.config.logrotator.filesRotateBySize || [];
17
20
  const maxFileSize = this.app.config.logrotator.maxFileSize;
18
21
  const maxFiles = this.app.config.logrotator.maxFiles;
19
22
  for (let logPath of filesRotateBySize) {
@@ -28,17 +31,22 @@ export class SizeRotator extends LogRotator {
28
31
  const size = stat.size;
29
32
  try {
30
33
  if (size >= maxFileSize) {
31
- this.logger.info(`[@eggjs/logrotator] file ${logPath} reach the maximum file size, current size: ${size}, max size: ${maxFileSize}`);
34
+ this.logger.info(
35
+ `[@eggjs/logrotator] file ${logPath} reach the maximum file size, current size: ${size}, max size: ${maxFileSize}`
36
+ );
32
37
  // delete max log file if exists, otherwise will throw when rename
33
38
  const maxFileName = `${logPath}.${maxFiles}`;
34
39
  const stat = await exists(maxFileName);
35
40
  if (stat) {
36
41
  await fs.unlink(maxFileName);
37
- this.logger.info(`[@eggjs/logrotator] delete max log file ${maxFileName}`);
42
+ this.logger.info(
43
+ `[@eggjs/logrotator] delete max log file ${maxFileName}`
44
+ );
38
45
  }
39
46
  this._setFile(logPath, files);
40
47
  }
41
- } catch (err: any) {
48
+ } catch (e) {
49
+ const err = e as Error;
42
50
  err.message = '[@eggjs/logrotator] ' + err.message;
43
51
  this.logger.error(err);
44
52
  }
package/src/lib/utils.ts CHANGED
@@ -6,15 +6,12 @@ interface LoggerTransport {
6
6
 
7
7
  /**
8
8
  * Walk all logger files from loggers
9
- * @param loggers - The loggers to walk
10
9
  */
11
- export function walkLoggerFile(loggers: Record<string, Map<string, LoggerTransport>>) {
10
+ export function walkLoggerFile(
11
+ loggers: Record<string, Map<string, LoggerTransport>>
12
+ ) {
12
13
  const files: string[] = [];
13
- for (const key in loggers) {
14
- if (!loggers.hasOwnProperty(key)) {
15
- continue;
16
- }
17
- const registeredLogger = loggers[key];
14
+ for (const registeredLogger of Object.values(loggers)) {
18
15
  for (const transport of registeredLogger.values()) {
19
16
  const file = transport.options.file;
20
17
  if (file) {