UNPKG

n8n

Version:

n8n Workflow Automation Tool

98 lines 4.49 kB
"use strict"; 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