n8n
Version:
n8n Workflow Automation Tool
98 lines • 4.49 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
const typedi_1 = require("typedi");
const winston_1 = __importDefault(require("winston"));
const callsites_1 = __importDefault(require("callsites"));
const util_1 = require("util");
const path_1 = require("path");
const n8n_workflow_1 = require("n8n-workflow");
const config_1 = __importDefault(require("./config"));
const noOp = () => { };
let Logger = class Logger {
constructor() {
const level = config_1.default.getEnv('logs.level');
this.logger = winston_1.default.createLogger({
level,
silent: level === 'silent',
});
for (const levelName of n8n_workflow_1.LOG_LEVELS) {
if (this.logger.levels[levelName] > this.logger.levels[level]) {
Object.defineProperty(this, levelName, { value: noOp });
}
}
const output = config_1.default
.getEnv('logs.output')
.split(',')
.map((line) => line.trim());
if (output.includes('console')) {
let format;
if (['debug', 'verbose'].includes(level)) {
format = winston_1.default.format.combine(winston_1.default.format.metadata(), winston_1.default.format.timestamp(), winston_1.default.format.colorize({ all: true }), winston_1.default.format.printf(({ level: logLevel, message, timestamp, metadata }) => {
return `${timestamp} | ${logLevel.padEnd(18)} | ${message}${Object.keys(metadata).length ? ` ${JSON.stringify((0, util_1.inspect)(metadata))}` : ''}`;
}));
}
else {
format = winston_1.default.format.printf(({ message }) => message);
}
this.logger.add(new winston_1.default.transports.Console({
format,
}));
}
if (output.includes('file')) {
const fileLogFormat = winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.metadata(), winston_1.default.format.json());
this.logger.add(new winston_1.default.transports.File({
filename: config_1.default.getEnv('logs.file.location'),
format: fileLogFormat,
maxsize: config_1.default.getEnv('logs.file.fileSizeMax') * 1048576,
maxFiles: config_1.default.getEnv('logs.file.fileCountMax'),
}));
}
n8n_workflow_1.LoggerProxy.init(this);
}
log(level, message, meta = {}) {
const callsite = (0, callsites_1.default)();
const logDetails = {};
if (callsite[2] !== undefined) {
logDetails.file = (0, path_1.basename)(callsite[2].getFileName() || '');
const functionName = callsite[2].getFunctionName();
if (functionName) {
logDetails.function = functionName;
}
}
this.logger.log(level, message, { ...meta, ...logDetails });
}
error(message, meta = {}) {
this.log('error', message, meta);
}
warn(message, meta = {}) {
this.log('warn', message, meta);
}
info(message, meta = {}) {
this.log('info', message, meta);
}
debug(message, meta = {}) {
this.log('debug', message, meta);
}
verbose(message, meta = {}) {
this.log('verbose', message, meta);
}
};
exports.Logger = Logger;
exports.Logger = Logger = __decorate([
(0, typedi_1.Service)(),
__metadata("design:paramtypes", [])
], Logger);
//# sourceMappingURL=Logger.js.map
;