file-error-logging
Version:
Log your errors directly to the console and to a .log file
38 lines (37 loc) • 1.87 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.logToFile = void 0;
// src/logger/LogToFile.ts
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const logToFile = (logsDir, rotation, level, message) => {
const now = new Date();
if (rotation === "daily") {
const yearDir = path_1.default.resolve(logsDir, now.getFullYear().toString());
fs_extra_1.default.ensureDirSync(yearDir);
const monthDir = path_1.default.resolve(yearDir, (now.getMonth() + 1).toString());
fs_extra_1.default.ensureDirSync(monthDir);
const dayDir = path_1.default.resolve(monthDir, now.getDate().toString());
fs_extra_1.default.ensureDirSync(dayDir);
const logFile = path_1.default.resolve(dayDir, `${level}.log`);
fs_extra_1.default.appendFileSync(logFile, `${message}\n`);
}
if (rotation === "monthly") {
const yearDir = path_1.default.resolve(logsDir, now.getFullYear().toString());
fs_extra_1.default.ensureDirSync(yearDir);
const monthDir = path_1.default.resolve(yearDir, (now.getMonth() + 1).toString());
fs_extra_1.default.ensureDirSync(monthDir);
const logFile = path_1.default.resolve(monthDir, `${level}.log`);
fs_extra_1.default.appendFileSync(logFile, `${message}\n`);
}
if (rotation === "yearly") {
const yearDir = path_1.default.resolve(logsDir, now.getFullYear().toString());
fs_extra_1.default.ensureDirSync(yearDir);
const logFile = path_1.default.resolve(yearDir, `${level}.log`);
fs_extra_1.default.appendFileSync(logFile, `${message}\n`);
}
};
exports.logToFile = logToFile;