UNPKG

@eggjs/logrotator

Version:
91 lines 7.59 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DayRotator = void 0; const node_path_1 = __importDefault(require("node:path")); const moment_1 = __importDefault(require("moment")); const promises_1 = __importDefault(require("node:fs/promises")); const node_util_1 = require("node:util"); const utility_1 = require("utility"); const rotator_js_1 = require("./rotator.js"); const utils_js_1 = require("./utils.js"); const debug = (0, node_util_1.debuglog)('@eggjs/logrotator/lib/day_rotator'); // rotate log by day // rename from foo.log to foo.log.YYYY-MM-DD class DayRotator extends rotator_js_1.LogRotator { filesRotateBySize; filesRotateByHour; constructor(options) { super(options); this.filesRotateBySize = this.app.config.logrotator.filesRotateBySize || []; this.filesRotateByHour = this.app.config.logrotator.filesRotateByHour || []; } async getRotateFiles() { const files = new Map(); const logDir = this.app.config.logger.dir; const loggers = this.app.loggers; const loggerFiles = (0, utils_js_1.walkLoggerFile)(loggers); for (let file of loggerFiles) { // support relative path if (!node_path_1.default.isAbsolute(file)) { file = node_path_1.default.join(logDir, file); } this._setFile(file, files); } // Should rotate agent log, because schedule is running under app worker, // agent log is the only difference between app worker and agent worker. // - app worker -> egg-web.log // - agent worker -> egg-agent.log const agentLogName = this.app.config.logger.agentLogName; this._setFile(node_path_1.default.join(logDir, agentLogName), files); // rotateLogDirs is deprecated const rotateLogDirs = this.app.config.logger.rotateLogDirs; if (rotateLogDirs && rotateLogDirs.length > 0) { this.app.deprecate('[egg-logrotator] Do not use app.config.logger.rotateLogDirs, only rotate core loggers and custom loggers'); for (const dir of rotateLogDirs) { const stat = await (0, utility_1.exists)(dir); if (!stat) continue; try { const names = await promises_1.default.readdir(dir); for (const name of names) { if (!name.endsWith('.log')) { continue; } this._setFile(node_path_1.default.join(dir, name), files); } } catch (err) { this.logger.error(err); } } } return files; } _setFile(srcPath, files) { // don't rotate logPath in filesRotateBySize if (this.filesRotateBySize.includes(srcPath)) { return; } // don't rotate logPath in filesRotateByHour if (this.filesRotateByHour.includes(srcPath)) { return; } if (!files.has(srcPath)) { const ext = this.app.config.logrotator.gzip === true ? '.gz' : ''; // allow 2 minutes deviation const targetPath = srcPath + (0, moment_1.default)() .subtract(23, 'hours') .subtract(58, 'minutes') .format('.YYYY-MM-DD') + ext; debug('set file %s => %s', srcPath, targetPath); files.set(srcPath, { srcPath, targetPath }); } } } exports.DayRotator = DayRotator; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5X3JvdGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2RheV9yb3RhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUE2QjtBQUM3QixvREFBNEI7QUFDNUIsZ0VBQWtDO0FBQ2xDLHlDQUFxQztBQUVyQyxxQ0FBaUM7QUFFakMsNkNBQWdGO0FBQ2hGLHlDQUE0QztBQUU1QyxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsbUNBQW1DLENBQUMsQ0FBQztBQUU1RCxvQkFBb0I7QUFDcEIsNENBQTRDO0FBQzVDLE1BQWEsVUFBVyxTQUFRLHVCQUFVO0lBQ2hDLGlCQUFpQixDQUFXO0lBQzVCLGlCQUFpQixDQUFXO0lBRXBDLFlBQVksT0FBdUI7UUFDakMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7UUFDNUUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDakMsTUFBTSxXQUFXLEdBQUcsSUFBQSx5QkFBYyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLEtBQUssSUFBSSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7WUFDN0Isd0JBQXdCO1lBQ3hCLElBQUks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