@eggjs/logrotator 5.0.0-beta.35 → 5.0.0-beta.36
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.
- package/dist/agent.d.ts +2 -2
- package/dist/agent.js +6 -2
- package/dist/app/extend/agent.d.ts +6 -3
- package/dist/app/extend/agent.js +7 -6
- package/dist/app/extend/application.d.ts +6 -3
- package/dist/app/extend/application.js +7 -5
- package/dist/app/schedule/clean_log.d.ts +6 -3
- package/dist/app/schedule/clean_log.js +56 -66
- package/dist/app/schedule/rotate_by_file.d.ts +6 -3
- package/dist/app/schedule/rotate_by_file.js +17 -13
- package/dist/app/schedule/rotate_by_hour.d.ts +6 -3
- package/dist/app/schedule/rotate_by_hour.js +17 -13
- package/dist/app/schedule/rotate_by_size.d.ts +6 -3
- package/dist/app/schedule/rotate_by_size.js +17 -13
- package/dist/app.d.ts +2 -2
- package/dist/app.js +6 -2
- package/dist/boot.d.ts +9 -5
- package/dist/boot.js +16 -14
- package/dist/config/config.default.d.ts +59 -57
- package/dist/config/config.default.js +15 -14
- package/dist/index.d.ts +21 -17
- package/dist/index.js +25 -22
- package/dist/lib/day_rotator.d.ts +11 -7
- package/dist/lib/day_rotator.js +62 -78
- package/dist/lib/hour_rotator.d.ts +9 -5
- package/dist/lib/hour_rotator.js +37 -38
- package/dist/lib/rotator.d.ts +17 -13
- package/dist/lib/rotator.js +54 -71
- package/dist/lib/size_rotator.d.ts +8 -4
- package/dist/lib/size_rotator.js +60 -66
- package/dist/lib/utils.d.ts +9 -7
- package/dist/lib/utils.js +13 -14
- package/dist/types.d.ts +19 -17
- package/dist/types.js +1 -2
- package/package.json +25 -31
package/dist/lib/size_rotator.js
CHANGED
|
@@ -1,67 +1,61 @@
|
|
|
1
|
-
import fs from 'node:fs/promises';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { debuglog } from 'node:util';
|
|
4
|
-
import { exists } from 'utility';
|
|
5
1
|
import { LogRotator } from "./rotator.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZV9yb3RhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9zaXplX3JvdGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVqQyxPQUFPLEVBQUUsVUFBVSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUUzRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUUxRCw0REFBNEQ7QUFDNUQsMkNBQTJDO0FBQzNDLDBEQUEwRDtBQUMxRCxNQUFNLE9BQU8sV0FBWSxTQUFRLFVBQVU7SUFDekMsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUMxQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7UUFDN0UsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3JELEtBQUssSUFBSSxPQUFPLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0Qyx3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztn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
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import { debuglog } from "node:util";
|
|
4
|
+
import { exists } from "utility";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
|
|
7
|
+
//#region src/lib/size_rotator.ts
|
|
8
|
+
const debug = debuglog("egg/logrotator/lib/size_rotator");
|
|
9
|
+
var SizeRotator = class extends LogRotator {
|
|
10
|
+
async getRotateFiles() {
|
|
11
|
+
const files = /* @__PURE__ */ new Map();
|
|
12
|
+
const logDir = this.app.config.logger.dir;
|
|
13
|
+
const filesRotateBySize = this.app.config.logrotator.filesRotateBySize ?? [];
|
|
14
|
+
const maxFileSize = this.app.config.logrotator.maxFileSize;
|
|
15
|
+
const maxFiles = this.app.config.logrotator.maxFiles;
|
|
16
|
+
for (let logPath of filesRotateBySize) {
|
|
17
|
+
if (!path.isAbsolute(logPath)) logPath = path.join(logDir, logPath);
|
|
18
|
+
const stat = await exists(logPath);
|
|
19
|
+
if (!stat) continue;
|
|
20
|
+
const size = stat.size;
|
|
21
|
+
try {
|
|
22
|
+
if (size >= maxFileSize) {
|
|
23
|
+
this.logger.info(`[@eggjs/logrotator] file ${logPath} reach the maximum file size, current size: ${size}, max size: ${maxFileSize}`);
|
|
24
|
+
const maxFileName = `${logPath}.${maxFiles}`;
|
|
25
|
+
if (await exists(maxFileName)) {
|
|
26
|
+
await fs.unlink(maxFileName);
|
|
27
|
+
this.logger.info(`[@eggjs/logrotator] delete max log file ${maxFileName}`);
|
|
28
|
+
}
|
|
29
|
+
this._setFile(logPath, files);
|
|
30
|
+
}
|
|
31
|
+
} catch (e) {
|
|
32
|
+
const err = e;
|
|
33
|
+
err.message = `[@eggjs/logrotator] ${err.message}`;
|
|
34
|
+
this.logger.error(err);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return files;
|
|
38
|
+
}
|
|
39
|
+
_setFile(logPath, files) {
|
|
40
|
+
const maxFiles = this.app.config.logrotator.maxFiles;
|
|
41
|
+
if (files.has(logPath)) return;
|
|
42
|
+
const ext = this.app.config.logrotator.gzip === true ? ".gz" : "";
|
|
43
|
+
for (let i = maxFiles - 1; i >= 1; i--) {
|
|
44
|
+
const srcPath = `${logPath}.${i}`;
|
|
45
|
+
const targetPath = `${logPath}.${i + 1}${ext}`;
|
|
46
|
+
debug("set file %s => %s", srcPath, targetPath);
|
|
47
|
+
files.set(srcPath, {
|
|
48
|
+
srcPath,
|
|
49
|
+
targetPath
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
debug("set file %s => %s", logPath, `${logPath}.1`);
|
|
53
|
+
files.set(logPath, {
|
|
54
|
+
srcPath: logPath,
|
|
55
|
+
targetPath: `${logPath}.1${ext}`
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
//#endregion
|
|
61
|
+
export { SizeRotator };
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
//#region src/lib/utils.d.ts
|
|
1
2
|
interface LoggerTransport {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
options: {
|
|
4
|
+
file: string;
|
|
5
|
+
};
|
|
5
6
|
}
|
|
6
7
|
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
* Walk all logger files from loggers
|
|
9
|
+
*/
|
|
10
|
+
declare function walkLoggerFile(loggers: Record<string, Map<string, LoggerTransport>>): string[];
|
|
11
|
+
//#endregion
|
|
12
|
+
export { walkLoggerFile };
|
package/dist/lib/utils.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
+
//#region src/lib/utils.ts
|
|
1
2
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return files;
|
|
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;
|
|
15
12
|
}
|
|
16
|
-
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { walkLoggerFile };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
1
|
+
export { };
|
package/package.json
CHANGED
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/logrotator",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.36",
|
|
4
4
|
"description": "logrotator for egg",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
7
|
-
"eggPlugin",
|
|
8
7
|
"egg-plugin",
|
|
8
|
+
"eggPlugin",
|
|
9
9
|
"logger",
|
|
10
10
|
"logrotator"
|
|
11
11
|
],
|
|
12
|
-
"
|
|
13
|
-
"type": "git",
|
|
14
|
-
"url": "git+https://github.com/eggjs/egg.git",
|
|
15
|
-
"directory": "plugins/logrotator"
|
|
16
|
-
},
|
|
12
|
+
"homepage": "https://github.com/eggjs/egg/tree/next/plugins/logrotator#readme",
|
|
17
13
|
"bugs": {
|
|
18
14
|
"url": "https://github.com/eggjs/egg/issues"
|
|
19
15
|
},
|
|
20
|
-
"homepage": "https://github.com/eggjs/egg/tree/next/plugins/logrotator#readme",
|
|
21
|
-
"author": "tianyi.jiangty",
|
|
22
16
|
"license": "MIT",
|
|
23
|
-
"
|
|
24
|
-
|
|
17
|
+
"author": "tianyi.jiangty",
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/eggjs/egg.git",
|
|
21
|
+
"directory": "plugins/logrotator"
|
|
25
22
|
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist"
|
|
25
|
+
],
|
|
26
26
|
"type": "module",
|
|
27
|
+
"main": "./dist/index.js",
|
|
28
|
+
"module": "./dist/index.js",
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
27
30
|
"exports": {
|
|
28
31
|
".": "./dist/index.js",
|
|
29
32
|
"./agent": "./dist/agent.js",
|
|
@@ -51,31 +54,22 @@
|
|
|
51
54
|
"moment": "^2.30.1",
|
|
52
55
|
"utility": "^2.5.0"
|
|
53
56
|
},
|
|
54
|
-
"peerDependencies": {
|
|
55
|
-
"egg": "4.1.0-beta.35"
|
|
56
|
-
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@types/node": "^24.10.
|
|
58
|
+
"@types/node": "^24.10.2",
|
|
59
59
|
"egg-logger": "^3.5.0",
|
|
60
60
|
"glob": "^11.0.0",
|
|
61
|
-
"tsdown": "^0.17.0",
|
|
62
61
|
"typescript": "^5.9.3",
|
|
63
|
-
"
|
|
64
|
-
"@eggjs/
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
"@eggjs/mock": "7.0.0-beta.36",
|
|
63
|
+
"@eggjs/schedule": "6.0.0-beta.36",
|
|
64
|
+
"egg": "4.1.0-beta.36"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"egg": "4.1.0-beta.36"
|
|
68
|
+
},
|
|
69
|
+
"engines": {
|
|
70
|
+
"node": ">= 22.18.0"
|
|
68
71
|
},
|
|
69
|
-
"files": [
|
|
70
|
-
"dist"
|
|
71
|
-
],
|
|
72
|
-
"main": "./dist/index.js",
|
|
73
|
-
"module": "./dist/index.js",
|
|
74
|
-
"types": "./dist/index.d.ts",
|
|
75
72
|
"scripts": {
|
|
76
|
-
"
|
|
77
|
-
"typecheck": "tsc --noEmit",
|
|
78
|
-
"lint": "oxlint --type-aware",
|
|
79
|
-
"test": "vitest run"
|
|
73
|
+
"typecheck": "tsgo --noEmit"
|
|
80
74
|
}
|
|
81
75
|
}
|