@eggjs/logrotator
Version:
logrotator for egg
50 lines • 4 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.HourRotator = void 0;
const moment_1 = __importDefault(require("moment"));
const node_path_1 = __importDefault(require("node:path"));
const node_util_1 = require("node:util");
const utility_1 = require("utility");
const rotator_js_1 = require("./rotator.js");
const debug = (0, node_util_1.debuglog)('@eggjs/logrotator/lib/hour_rotator');
// rotate log by hour
// rename from foo.log to foo.log.YYYY-MM-DD-HH
class HourRotator extends rotator_js_1.LogRotator {
async getRotateFiles() {
const files = new Map();
const logDir = this.app.config.logger.dir;
const filesRotateByHour = this.app.config.logrotator.filesRotateByHour || [];
for (let logPath of filesRotateByHour) {
// support relative path
if (!node_path_1.default.isAbsolute(logPath)) {
logPath = node_path_1.default.join(logDir, logPath);
}
const stat = await (0, utility_1.exists)(logPath);
if (!stat) {
continue;
}
this._setFile(logPath, files);
}
return files;
}
get hourDelimiter() {
return this.app.config.logrotator.hourDelimiter;
}
_setFile(srcPath, files) {
if (!files.has(srcPath)) {
const ext = this.app.config.logrotator.gzip === true ? '.gz' : '';
const targetPath = srcPath +
(0, moment_1.default)()
.subtract(1, 'hours')
.format(`.YYYY-MM-DD${this.hourDelimiter}HH`) +
ext;
debug('set file %s => %s', srcPath, targetPath);
files.set(srcPath, { srcPath, targetPath });
}
}
}
exports.HourRotator = HourRotator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91cl9yb3RhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ob3VyX3JvdGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLDBEQUE2QjtBQUM3Qix5Q0FBcUM7QUFFckMscUNBQWlDO0FBRWpDLDZDQUEyRDtBQUUzRCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUU3RCxxQkFBcUI7QUFDckIsK0NBQStDO0FBQy9DLE1BQWEsV0FBWSxTQUFRLHVCQUFVO0lBQ3pDLEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDMUMsTUFBTSxpQkFBaUIsR0FDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztRQUVyRCxLQUFLLElBQUksT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEMsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxtQkFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUM5QixPQUFPLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsZ0JBQU0sRUFBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsU0FBUztZQUNYLENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ2xELENBQUM7SUFFRCxRQUFRLENBQUMsT0FBZSxFQUFFLEtBQThCO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sVUFBVSxHQUNkLE9BQU87Z0JBQ1AsSUFBQSxnQkFBTSxHQUFFO3FCQUNMLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO3FCQUNwQixNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUM7Z0JBQy9DLEdBQUcsQ0FBQztZQUNOLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDaEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdkNELGtDQXVDQyJ9