@thatcompany/ts-tool
Version:
基于TypeScript编写的工具库
40 lines • 1.4 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileLoggerTransport = void 0;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const rotating_file_stream_1 = require("rotating-file-stream");
class FileLoggerTransport {
stream;
constructor(logFilePath = '_logs/that.log') {
this.stream = (0, rotating_file_stream_1.createStream)(logFilePath, {
size: '10M',
interval: '1d',
compress: 'gzip',
});
const dir = path_1.default.dirname(logFilePath);
if (!fs_1.default.existsSync(dir)) {
fs_1.default.mkdirSync(dir, { recursive: true });
}
}
exec(logObj) {
try {
const log = {
levelId: logObj._meta.logLevelId,
date: logObj._meta.date,
message: logObj[0],
path: logObj._meta.path.fullFilePath,
levelName: logObj._meta.logLevelName,
};
this.stream.write(JSON.stringify(log) + '\n');
}
catch (err) {
console.error(err);
}
}
}
exports.FileLoggerTransport = FileLoggerTransport;
//# sourceMappingURL=FileLoggerTransport.js.map