winston-transport-logtail
Version:
logtail.com transport for winston v3 logger
60 lines • 2.3 kB
JavaScript
;
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LogtailTransport = void 0;
const winston_transport_1 = __importDefault(require("winston-transport"));
const types_1 = require("@logtail/types");
const context_1 = require("./context");
class LogtailTransport extends winston_transport_1.default {
constructor(_logtail, stackContext) {
super();
this._logtail = _logtail;
this._context = stackContext;
}
// Allow stack context to be parsed from a different StackFrame.
setStackContext(_context) {
this._context = _context;
}
log(info, cb) {
// Pass the log to Winston's internal event handlers
setImmediate(() => {
this.emit("logged", info);
});
const { level, message } = info, meta = __rest(info, ["level", "message"]);
// Determine the log level
let logLevel;
switch (level) {
case "debug":
logLevel = types_1.LogLevel.Debug;
break;
case "warn":
logLevel = types_1.LogLevel.Warn;
break;
case "error":
logLevel = types_1.LogLevel.Error;
break;
// All other log levels use `Info` by default
default:
logLevel = types_1.LogLevel.Info;
}
// Log out to Logtail
void this._logtail.log(message, logLevel, Object.assign(Object.assign({}, meta), (0, context_1.getStackContext)(this._context)));
// Winston callback...
cb();
}
}
exports.LogtailTransport = LogtailTransport;
//# sourceMappingURL=winston.js.map