@eggjs/logrotator 4.1.0 → 5.0.0-beta.17

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 (125) hide show
  1. package/README.md +1 -3
  2. package/README.zh-CN.md +1 -3
  3. package/dist/agent.d.ts +2 -0
  4. package/dist/agent.js +7 -0
  5. package/dist/app/extend/agent.d.ts +8 -0
  6. package/dist/app/extend/agent.js +7 -0
  7. package/dist/app/extend/application.d.ts +8 -0
  8. package/dist/app/extend/application.js +7 -0
  9. package/dist/app/schedule/clean_log.d.ts +12 -0
  10. package/dist/app/schedule/clean_log.js +60 -0
  11. package/dist/app/schedule/rotate_by_file.d.ts +13 -0
  12. package/dist/app/schedule/rotate_by_file.js +19 -0
  13. package/dist/app/schedule/rotate_by_hour.d.ts +13 -0
  14. package/dist/app/schedule/rotate_by_hour.js +19 -0
  15. package/dist/app/schedule/rotate_by_size.d.ts +13 -0
  16. package/dist/app/schedule/rotate_by_size.js +19 -0
  17. package/dist/app.d.ts +2 -0
  18. package/dist/app.js +7 -0
  19. package/dist/boot.d.ts +10 -0
  20. package/dist/boot.js +16 -0
  21. package/{src/config/config.default.ts → dist/config/config.default.d.ts} +6 -18
  22. package/dist/config/config.default.js +15 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.js +5 -0
  25. package/dist/lib/day_rotator.d.ts +12 -0
  26. package/dist/lib/day_rotator.js +64 -0
  27. package/dist/lib/hour_rotator.d.ts +10 -0
  28. package/dist/lib/hour_rotator.js +38 -0
  29. package/dist/lib/rotator.d.ts +20 -0
  30. package/dist/lib/rotator.js +56 -0
  31. package/dist/lib/size_rotator.d.ts +9 -0
  32. package/dist/lib/size_rotator.js +61 -0
  33. package/dist/lib/utils.d.ts +12 -0
  34. package/dist/lib/utils.js +15 -0
  35. package/dist/types.d.ts +19 -0
  36. package/dist/types.js +1 -0
  37. package/package.json +53 -78
  38. package/dist/commonjs/agent.d.ts +0 -2
  39. package/dist/commonjs/agent.js +0 -5
  40. package/dist/commonjs/app/extend/agent.d.ts +0 -5
  41. package/dist/commonjs/app/extend/agent.js +0 -8
  42. package/dist/commonjs/app/extend/application.d.ts +0 -5
  43. package/dist/commonjs/app/extend/application.js +0 -7
  44. package/dist/commonjs/app/schedule/clean_log.d.ts +0 -9
  45. package/dist/commonjs/app/schedule/clean_log.js +0 -75
  46. package/dist/commonjs/app/schedule/rotate_by_file.d.ts +0 -10
  47. package/dist/commonjs/app/schedule/rotate_by_file.js +0 -17
  48. package/dist/commonjs/app/schedule/rotate_by_hour.d.ts +0 -10
  49. package/dist/commonjs/app/schedule/rotate_by_hour.js +0 -17
  50. package/dist/commonjs/app/schedule/rotate_by_size.d.ts +0 -10
  51. package/dist/commonjs/app/schedule/rotate_by_size.js +0 -17
  52. package/dist/commonjs/app.d.ts +0 -2
  53. package/dist/commonjs/app.js +0 -5
  54. package/dist/commonjs/boot.d.ts +0 -6
  55. package/dist/commonjs/boot.js +0 -18
  56. package/dist/commonjs/config/config.default.d.ts +0 -64
  57. package/dist/commonjs/config/config.default.js +0 -16
  58. package/dist/commonjs/index.d.ts +0 -2
  59. package/dist/commonjs/index.js +0 -19
  60. package/dist/commonjs/lib/day_rotator.d.ts +0 -8
  61. package/dist/commonjs/lib/day_rotator.js +0 -91
  62. package/dist/commonjs/lib/hour_rotator.d.ts +0 -6
  63. package/dist/commonjs/lib/hour_rotator.js +0 -50
  64. package/dist/commonjs/lib/rotator.d.ts +0 -16
  65. package/dist/commonjs/lib/rotator.js +0 -81
  66. package/dist/commonjs/lib/size_rotator.d.ts +0 -5
  67. package/dist/commonjs/lib/size_rotator.js +0 -74
  68. package/dist/commonjs/lib/utils.d.ts +0 -10
  69. package/dist/commonjs/lib/utils.js +0 -19
  70. package/dist/commonjs/package.json +0 -3
  71. package/dist/commonjs/types.d.ts +0 -11
  72. package/dist/commonjs/types.js +0 -3
  73. package/dist/esm/agent.d.ts +0 -2
  74. package/dist/esm/agent.js +0 -3
  75. package/dist/esm/app/extend/agent.d.ts +0 -5
  76. package/dist/esm/app/extend/agent.js +0 -6
  77. package/dist/esm/app/extend/application.d.ts +0 -5
  78. package/dist/esm/app/extend/application.js +0 -5
  79. package/dist/esm/app/schedule/clean_log.d.ts +0 -9
  80. package/dist/esm/app/schedule/clean_log.js +0 -70
  81. package/dist/esm/app/schedule/rotate_by_file.d.ts +0 -10
  82. package/dist/esm/app/schedule/rotate_by_file.js +0 -15
  83. package/dist/esm/app/schedule/rotate_by_hour.d.ts +0 -10
  84. package/dist/esm/app/schedule/rotate_by_hour.js +0 -15
  85. package/dist/esm/app/schedule/rotate_by_size.d.ts +0 -10
  86. package/dist/esm/app/schedule/rotate_by_size.js +0 -15
  87. package/dist/esm/app.d.ts +0 -2
  88. package/dist/esm/app.js +0 -3
  89. package/dist/esm/boot.d.ts +0 -6
  90. package/dist/esm/boot.js +0 -14
  91. package/dist/esm/config/config.default.d.ts +0 -64
  92. package/dist/esm/config/config.default.js +0 -14
  93. package/dist/esm/index.d.ts +0 -2
  94. package/dist/esm/index.js +0 -3
  95. package/dist/esm/lib/day_rotator.d.ts +0 -8
  96. package/dist/esm/lib/day_rotator.js +0 -84
  97. package/dist/esm/lib/hour_rotator.d.ts +0 -6
  98. package/dist/esm/lib/hour_rotator.js +0 -43
  99. package/dist/esm/lib/rotator.d.ts +0 -16
  100. package/dist/esm/lib/rotator.js +0 -74
  101. package/dist/esm/lib/size_rotator.d.ts +0 -5
  102. package/dist/esm/lib/size_rotator.js +0 -67
  103. package/dist/esm/lib/utils.d.ts +0 -10
  104. package/dist/esm/lib/utils.js +0 -16
  105. package/dist/esm/package.json +0 -3
  106. package/dist/esm/types.d.ts +0 -11
  107. package/dist/esm/types.js +0 -2
  108. package/dist/package.json +0 -4
  109. package/src/agent.ts +0 -3
  110. package/src/app/extend/agent.ts +0 -6
  111. package/src/app/extend/application.ts +0 -5
  112. package/src/app/schedule/clean_log.ts +0 -87
  113. package/src/app/schedule/rotate_by_file.ts +0 -18
  114. package/src/app/schedule/rotate_by_hour.ts +0 -18
  115. package/src/app/schedule/rotate_by_size.ts +0 -18
  116. package/src/app.ts +0 -3
  117. package/src/boot.ts +0 -16
  118. package/src/index.ts +0 -3
  119. package/src/lib/day_rotator.ts +0 -98
  120. package/src/lib/hour_rotator.ts +0 -52
  121. package/src/lib/rotator.ts +0 -107
  122. package/src/lib/size_rotator.ts +0 -75
  123. package/src/lib/utils.ts +0 -23
  124. package/src/types.ts +0 -15
  125. package/src/typings/index.d.ts +0 -4
@@ -0,0 +1,15 @@
1
+ //#region src/lib/utils.ts
2
+ /**
3
+ * Walk all logger files from loggers
4
+ */
5
+ function walkLoggerFile(loggers) {
6
+ const files = [];
7
+ for (const registeredLogger of Object.values(loggers)) for (const transport of registeredLogger.values()) {
8
+ const file = transport.options.file;
9
+ if (file) files.push(file);
10
+ }
11
+ return files;
12
+ }
13
+
14
+ //#endregion
15
+ export { walkLoggerFile };
@@ -0,0 +1,19 @@
1
+ import { LogRotator } from "./lib/rotator.js";
2
+ import { LogrotatorConfig } from "./config/config.default.js";
3
+
4
+ //#region src/types.d.ts
5
+ declare module 'egg' {
6
+ interface EggAppConfig {
7
+ /**
8
+ * logrotator options
9
+ * @member Config#logrotator
10
+ */
11
+ logrotator: LogrotatorConfig;
12
+ }
13
+ interface Agent {
14
+ LogRotator: typeof LogRotator;
15
+ }
16
+ interface Application {
17
+ LogRotator: typeof LogRotator;
18
+ }
19
+ }
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ export { };
package/package.json CHANGED
@@ -1,20 +1,12 @@
1
1
  {
2
2
  "name": "@eggjs/logrotator",
3
- "version": "4.1.0",
4
- "publishConfig": {
5
- "access": "public"
6
- },
3
+ "version": "5.0.0-beta.17",
7
4
  "description": "logrotator for egg",
8
5
  "eggPlugin": {
9
6
  "name": "logrotator",
10
7
  "dependencies": [
11
8
  "schedule"
12
- ],
13
- "exports": {
14
- "import": "./dist/esm",
15
- "require": "./dist/commonjs",
16
- "typescript": "./src"
17
- }
9
+ ]
18
10
  },
19
11
  "keywords": [
20
12
  "egg",
@@ -25,87 +17,70 @@
25
17
  ],
26
18
  "repository": {
27
19
  "type": "git",
28
- "url": "git+https://github.com/eggjs/logrotator.git"
20
+ "url": "git://github.com/eggjs/egg.git",
21
+ "directory": "plugins/logrotator"
29
22
  },
30
23
  "bugs": {
31
24
  "url": "https://github.com/eggjs/egg/issues"
32
25
  },
33
- "homepage": "https://github.com/eggjs/logrotator#readme",
26
+ "homepage": "https://github.com/eggjs/egg/tree/next/plugins/logrotator#readme",
34
27
  "author": "tianyi.jiangty",
35
28
  "license": "MIT",
36
29
  "engines": {
37
- "node": ">= 18.19.0"
30
+ "node": ">= 22.18.0"
31
+ },
32
+ "type": "module",
33
+ "exports": {
34
+ ".": "./dist/index.js",
35
+ "./agent": "./dist/agent.js",
36
+ "./app": "./dist/app.js",
37
+ "./app/extend/agent": "./dist/app/extend/agent.js",
38
+ "./app/extend/application": "./dist/app/extend/application.js",
39
+ "./app/schedule/clean_log": "./dist/app/schedule/clean_log.js",
40
+ "./app/schedule/rotate_by_file": "./dist/app/schedule/rotate_by_file.js",
41
+ "./app/schedule/rotate_by_hour": "./dist/app/schedule/rotate_by_hour.js",
42
+ "./app/schedule/rotate_by_size": "./dist/app/schedule/rotate_by_size.js",
43
+ "./boot": "./dist/boot.js",
44
+ "./config/config.default": "./dist/config/config.default.js",
45
+ "./lib/day_rotator": "./dist/lib/day_rotator.js",
46
+ "./lib/hour_rotator": "./dist/lib/hour_rotator.js",
47
+ "./lib/rotator": "./dist/lib/rotator.js",
48
+ "./lib/size_rotator": "./dist/lib/size_rotator.js",
49
+ "./lib/utils": "./dist/lib/utils.js",
50
+ "./types": "./dist/types.js",
51
+ "./package.json": "./package.json"
52
+ },
53
+ "publishConfig": {
54
+ "access": "public"
38
55
  },
39
56
  "dependencies": {
40
- "@eggjs/core": "^6.2.13",
41
57
  "moment": "^2.30.1",
42
58
  "utility": "^2.5.0"
43
59
  },
44
- "devDependencies": {
45
- "@arethetypeswrong/cli": "^0.17.4",
46
- "@eggjs/bin": "7",
47
- "@eggjs/mock": "^6.0.6",
48
- "@eggjs/tsconfig": "1",
49
- "@types/mocha": "10",
50
- "@types/node": "22",
51
- "egg": "^4.0.5",
52
- "egg-logger": "^3.6.1",
53
- "husky": "9",
54
- "lint-staged": "15",
55
- "oxlint": "^0.16.2",
56
- "prettier": "3",
57
- "glob": "^11.0.1",
58
- "rimraf": "6",
59
- "snap-shot-it": "^7.9.10",
60
- "supertest": "^6.3.3",
61
- "tshy": "3",
62
- "tshy-after": "1",
63
- "typescript": "5"
64
- },
65
- "scripts": {
66
- "lint": "oxlint",
67
- "pretest": "npm run clean && npm run lint -- --fix",
68
- "test": "egg-bin test",
69
- "test:snapshot:update": "SNAPSHOT_UPDATE=1 egg-bin test",
70
- "preci": "npm run clean && npm run lint",
71
- "ci": "egg-bin cov",
72
- "postci": "npm run prepublishOnly && npm run clean",
73
- "clean": "rimraf dist",
74
- "prepublishOnly": "tshy && tshy-after && attw --pack",
75
- "prepare": "husky"
60
+ "peerDependencies": {
61
+ "egg": "4.1.0-beta.17"
76
62
  },
77
- "lint-staged": {
78
- "*": "prettier --write --ignore-unknown --cache",
79
- "*.{ts,js,json,md,yml}": [
80
- "prettier --ignore-unknown --write",
81
- "oxlint --fix"
82
- ]
83
- },
84
- "type": "module",
85
- "tshy": {
86
- "exports": {
87
- ".": "./src/index.ts",
88
- "./package.json": "./package.json"
89
- }
90
- },
91
- "exports": {
92
- ".": {
93
- "import": {
94
- "types": "./dist/esm/index.d.ts",
95
- "default": "./dist/esm/index.js"
96
- },
97
- "require": {
98
- "types": "./dist/commonjs/index.d.ts",
99
- "default": "./dist/commonjs/index.js"
100
- }
101
- },
102
- "./package.json": "./package.json"
63
+ "devDependencies": {
64
+ "@types/node": "24.5.2",
65
+ "egg-logger": "^3.5.0",
66
+ "glob": "^11.0.0",
67
+ "tsdown": "^0.15.4",
68
+ "typescript": "5.9.2",
69
+ "vitest": "4.0.0-beta.13",
70
+ "@eggjs/schedule": "6.0.0-beta.17",
71
+ "@eggjs/tsconfig": "3.1.0-beta.17",
72
+ "@eggjs/mock": "7.0.0-beta.17"
103
73
  },
104
74
  "files": [
105
- "dist",
106
- "src"
75
+ "dist"
107
76
  ],
108
- "types": "./dist/commonjs/index.d.ts",
109
- "main": "./dist/commonjs/index.js",
110
- "module": "./dist/esm/index.js"
111
- }
77
+ "main": "./dist/index.js",
78
+ "module": "./dist/index.js",
79
+ "types": "./dist/index.d.ts",
80
+ "scripts": {
81
+ "build": "tsdown",
82
+ "typecheck": "tsc --noEmit",
83
+ "lint": "oxlint --type-aware",
84
+ "test": "vitest run"
85
+ }
86
+ }
@@ -1,2 +0,0 @@
1
- import { Boot } from './boot.js';
2
- export default Boot;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const boot_js_1 = require("./boot.js");
4
- exports.default = boot_js_1.Boot;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1Q0FBaUM7QUFFakMsa0JBQWUsY0FBSSxDQUFDIn0=
@@ -1,5 +0,0 @@
1
- import { LogRotator } from '../../lib/rotator.js';
2
- declare const _default: {
3
- LogRotator: typeof LogRotator;
4
- };
5
- export default _default;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const rotator_js_1 = require("../../lib/rotator.js");
4
- // egg-schedule will load both at app and agent, so we should mount it for compatible
5
- exports.default = {
6
- LogRotator: rotator_js_1.LogRotator,
7
- };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFrRDtBQUVsRCxxRkFBcUY7QUFDckYsa0JBQWU7SUFDYixVQUFVLEVBQVYsdUJBQVU7Q0FDWCxDQUFDIn0=
@@ -1,5 +0,0 @@
1
- import { LogRotator } from '../../lib/rotator.js';
2
- declare const _default: {
3
- LogRotator: typeof LogRotator;
4
- };
5
- export default _default;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const rotator_js_1 = require("../../lib/rotator.js");
4
- exports.default = {
5
- LogRotator: rotator_js_1.LogRotator,
6
- };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFrRDtBQUVsRCxrQkFBZTtJQUNiLFVBQVUsRUFBVix1QkFBVTtDQUNYLENBQUMifQ==
@@ -1,9 +0,0 @@
1
- import type { EggCore } from '@eggjs/core';
2
- declare const _default: (app: EggCore) => {
3
- schedule: {
4
- type: string;
5
- cron: string;
6
- };
7
- task(): Promise<void>;
8
- };
9
- export default _default;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const node_path_1 = __importDefault(require("node:path"));
7
- const promises_1 = __importDefault(require("node:fs/promises"));
8
- const utility_1 = require("utility");
9
- const moment_1 = __importDefault(require("moment"));
10
- const utils_js_1 = require("../../lib/utils.js");
11
- // clean all xxx.log.YYYY-MM-DD before expired date.
12
- exports.default = (app) => ({
13
- schedule: {
14
- type: 'worker', // only one worker run this task
15
- cron: '0 0 * * *', // run every day at 00:00
16
- },
17
- async task() {
18
- const logger = app.coreLogger;
19
- const logDirs = new Set();
20
- const loggerFiles = (0, utils_js_1.walkLoggerFile)(app.loggers);
21
- for (const file of loggerFiles) {
22
- const logDir = node_path_1.default.dirname(file);
23
- logDirs.add(logDir);
24
- }
25
- const maxDays = app.config.logrotator.maxDays;
26
- if (maxDays && maxDays > 0) {
27
- try {
28
- const tasks = Array.from(logDirs, logDir => removeExpiredLogFiles(logDir, maxDays, logger));
29
- await Promise.all(tasks);
30
- }
31
- catch (err) {
32
- logger.error(err);
33
- }
34
- }
35
- logger.info('[@eggjs/logrotator] clean all log before %s days', maxDays);
36
- },
37
- });
38
- // remove expired log files: xxx.log.YYYY-MM-DD
39
- async function removeExpiredLogFiles(logDir, maxDays, logger) {
40
- // ignore not exists dir
41
- const stat = await (0, utility_1.exists)(logDir);
42
- if (!stat) {
43
- logger.warn(`[@eggjs/logrotator] logDir ${logDir} not exists`);
44
- return;
45
- }
46
- const files = await promises_1.default.readdir(logDir);
47
- const expiredDate = (0, moment_1.default)().subtract(maxDays, 'days').startOf('date');
48
- const names = files.filter(file => {
49
- const name = node_path_1.default.extname(file).slice(1);
50
- if (!/^\d{4}-\d{2}-\d{2}/.test(name)) {
51
- return false;
52
- }
53
- const date = (0, moment_1.default)(name, 'YYYY-MM-DD').startOf('date');
54
- if (!date.isValid()) {
55
- return false;
56
- }
57
- return date.isBefore(expiredDate);
58
- });
59
- if (names.length === 0) {
60
- return;
61
- }
62
- logger.info(`[@eggjs/logrotator] start remove ${logDir} files: ${names.join(', ')}`);
63
- await Promise.all(names.map(async (name) => {
64
- const logFile = node_path_1.default.join(logDir, name);
65
- try {
66
- await promises_1.default.unlink(logFile);
67
- }
68
- catch (e) {
69
- const err = e;
70
- err.message = `[@eggjs/logrotator] remove logFile ${logFile} error, ${err.message}`;
71
- logger.error(err);
72
- }
73
- }));
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW5fbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zY2hlZHVsZS9jbGVhbl9sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBNkI7QUFDN0IsZ0VBQWtDO0FBRWxDLHFDQUFpQztBQUNqQyxvREFBNEI7QUFHNUIsaURBQW9EO0FBRXBELG9EQUFvRDtBQUNwRCxrQkFBZSxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoQyxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsUUFBUSxFQUFFLGdDQUFnQztRQUNoRCxJQUFJLEVBQUUsV0FBVyxFQUFFLHlCQUF5QjtLQUM3QztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUEseUJBQWMsRUFBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsS0FBSyxNQUFNLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUMvQixNQUFNLE1BQU0sR0FBRyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDOUMsSUFBSSxPQUFPLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQztnQkFDSCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUN6QyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUMvQyxDQUFD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
@@ -1,10 +0,0 @@
1
- import type { EggCore } from '@eggjs/core';
2
- declare const _default: (app: EggCore) => {
3
- schedule: {
4
- type: string;
5
- cron: string;
6
- disable: boolean;
7
- };
8
- task(): Promise<void>;
9
- };
10
- export default _default;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const day_rotator_js_1 = require("../../lib/day_rotator.js");
4
- exports.default = (app) => {
5
- const rotator = new day_rotator_js_1.DayRotator({ app });
6
- return {
7
- schedule: {
8
- type: 'worker', // only one worker run this task
9
- cron: '1 0 0 * * *', // run every day at 00:00
10
- disable: app.config.logrotator.disableRotateByDay,
11
- },
12
- async task() {
13
- await rotator.rotate();
14
- },
15
- };
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRlX2J5X2ZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL3NjaGVkdWxlL3JvdGF0ZV9ieV9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsNkRBQXNEO0FBRXRELGtCQUFlLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSwyQkFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUV4QyxPQUFPO1FBQ0wsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFFBQVEsRUFBRSxnQ0FBZ0M7WUFDaEQsSUFBSSxFQUFFLGFBQWEsRUFBRSx5QkFBeUI7WUFDOUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGtCQUFrQjtTQUNsRDtRQUVELEtBQUssQ0FBQyxJQUFJO1lBQ1IsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -1,10 +0,0 @@
1
- import type { EggCore } from '@eggjs/core';
2
- declare const _default: (app: EggCore) => {
3
- schedule: {
4
- type: string;
5
- cron: string;
6
- disable: boolean;
7
- };
8
- task(): Promise<void>;
9
- };
10
- export default _default;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const hour_rotator_js_1 = require("../../lib/hour_rotator.js");
4
- exports.default = (app) => {
5
- const rotator = new hour_rotator_js_1.HourRotator({ app });
6
- return {
7
- schedule: {
8
- type: 'worker', // only one worker run this task
9
- cron: '1 * * * *', // run every hour at 01
10
- disable: (app.config.logrotator.filesRotateByHour || []).length === 0,
11
- },
12
- async task() {
13
- await rotator.rotate();
14
- },
15
- };
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRlX2J5X2hvdXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL3NjaGVkdWxlL3JvdGF0ZV9ieV9ob3VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsK0RBQXdEO0FBRXhELGtCQUFlLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSw2QkFBVyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUV6QyxPQUFPO1FBQ0wsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFFBQVEsRUFBRSxnQ0FBZ0M7WUFDaEQsSUFBSSxFQUFFLFdBQVcsRUFBRSx1QkFBdUI7WUFDMUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7U0FDdEU7UUFFRCxLQUFLLENBQUMsSUFBSTtZQUNSLE1BQU0sT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
@@ -1,10 +0,0 @@
1
- import type { EggCore } from '@eggjs/core';
2
- declare const _default: (app: EggCore) => {
3
- schedule: {
4
- type: string;
5
- interval: number;
6
- disable: boolean;
7
- };
8
- task(): Promise<void>;
9
- };
10
- export default _default;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const size_rotator_js_1 = require("../../lib/size_rotator.js");
4
- exports.default = (app) => {
5
- const rotator = new size_rotator_js_1.SizeRotator({ app });
6
- return {
7
- schedule: {
8
- type: 'worker',
9
- interval: app.config.logrotator.rotateDuration,
10
- disable: (app.config.logrotator.filesRotateBySize || []).length === 0,
11
- },
12
- async task() {
13
- await rotator.rotate();
14
- },
15
- };
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRlX2J5X3NpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL3NjaGVkdWxlL3JvdGF0ZV9ieV9zaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsK0RBQXdEO0FBRXhELGtCQUFlLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSw2QkFBVyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUV6QyxPQUFPO1FBQ0wsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBYztZQUM5QyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztTQUN0RTtRQUVELEtBQUssQ0FBQyxJQUFJO1lBQ1IsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -1,2 +0,0 @@
1
- import { Boot } from './boot.js';
2
- export default Boot;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const boot_js_1 = require("./boot.js");
4
- exports.default = boot_js_1.Boot;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVDQUFpQztBQUVqQyxrQkFBZSxjQUFJLENBQUMifQ==
@@ -1,6 +0,0 @@
1
- import type { EggCore, ILifecycleBoot } from '@eggjs/core';
2
- export declare class Boot implements ILifecycleBoot {
3
- private readonly app;
4
- constructor(app: EggCore);
5
- didLoad(): Promise<void>;
6
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Boot = void 0;
4
- class Boot {
5
- app;
6
- constructor(app) {
7
- this.app = app;
8
- }
9
- async didLoad() {
10
- // reload logger to new fd after rotating
11
- this.app.messenger.on('log-reload', () => {
12
- this.app.loggers.reload();
13
- this.app.coreLogger.info('[@eggjs/logrotator] %s logger reload: got log-reload message', this.app.type);
14
- });
15
- }
16
- }
17
- exports.Boot = Boot;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ib290LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQWEsSUFBSTtJQUNjO0lBQTdCLFlBQTZCLEdBQVk7UUFBWixRQUFHLEdBQUgsR0FBRyxDQUFTO0lBQUcsQ0FBQztJQUU3QyxLQUFLLENBQUMsT0FBTztRQUNYLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3RCLDhEQUE4RCxFQUM5RCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FDZCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFiRCxvQkFhQyJ9
@@ -1,64 +0,0 @@
1
- /**
2
- * logrotator options
3
- * @member Config#logrotator
4
- */
5
- export interface LogrotatorConfig {
6
- /**
7
- * Disable rotate by day
8
- *
9
- * Default: `false`
10
- */
11
- disableRotateByDay: boolean;
12
- /**
13
- * List of files that will be rotated by hour
14
- *
15
- * Default: `null`
16
- */
17
- filesRotateByHour: string[] | null;
18
- /**
19
- * Hour delimiter
20
- *
21
- * Default: `-`
22
- */
23
- hourDelimiter: string;
24
- /**
25
- * List of files that will be rotated by size
26
- *
27
- * Default: `null`
28
- */
29
- filesRotateBySize: string[] | null;
30
- /**
31
- * Max file size to judge if any file need rotate
32
- *
33
- * Default: `50 * 1024 * 1024`
34
- */
35
- maxFileSize: number;
36
- /**
37
- * Max files to keep
38
- *
39
- * Default: `10`
40
- */
41
- maxFiles: number;
42
- /**
43
- * Time interval to judge if any file need rotate
44
- *
45
- * Default: `60000`
46
- */
47
- rotateDuration: number;
48
- /**
49
- * Max days to keep log files, set `0` to keep all logs.
50
- *
51
- * Default: `31`
52
- */
53
- maxDays: number;
54
- /**
55
- * Enable gzip compression for rotated files
56
- *
57
- * Default: `false`
58
- */
59
- gzip: boolean;
60
- }
61
- declare const _default: {
62
- logrotator: LogrotatorConfig;
63
- };
64
- export default _default;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
4
- logrotator: {
5
- disableRotateByDay: false,
6
- filesRotateByHour: null,
7
- hourDelimiter: '-',
8
- filesRotateBySize: null,
9
- maxFileSize: 50 * 1024 * 1024,
10
- maxFiles: 10,
11
- rotateDuration: 60_000,
12
- maxDays: 31,
13
- gzip: false,
14
- },
15
- };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNkRBLGtCQUFlO0lBQ2IsVUFBVSxFQUFFO1FBQ1Ysa0JBQWtCLEVBQUUsS0FBSztRQUN6QixpQkFBaUIsRUFBRSxJQUFJO1FBQ3ZCLGFBQWEsRUFBRSxHQUFHO1FBQ2xCLGlCQUFpQixFQUFFLElBQUk7UUFDdkIsV0FBVyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtRQUM3QixRQUFRLEVBQUUsRUFBRTtRQUNaLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsSUFBSSxFQUFFLEtBQUs7S0FDUTtDQUN0QixDQUFDIn0=
@@ -1,2 +0,0 @@
1
- import './types.js';
2
- export * from './lib/rotator.js';
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- require("./types.js");
18
- __exportStar(require("./lib/rotator.js"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNCQUFvQjtBQUVwQixtREFBaUMifQ==
@@ -1,8 +0,0 @@
1
- import { LogRotator, type RotateFile, type RotatorOptions } from './rotator.js';
2
- export declare class DayRotator extends LogRotator {
3
- private filesRotateBySize;
4
- private filesRotateByHour;
5
- constructor(options: RotatorOptions);
6
- getRotateFiles(): Promise<Map<string, RotateFile>>;
7
- _setFile(srcPath: string, files: Map<string, RotateFile>): void;
8
- }