Type 'ConsoleTransportInstance' is not assignable to type 'JSNLogAppender'
Closed this issue · 2 comments
Getting below error when I try to assign winston console transport as an appender. Any Idea ?
Type 'ConsoleTransportInstance' is not assignable to type 'JSNLogAppender'.
Property 'setOptions' is missing in type 'ConsoleTransportInstance'.
Code :
const consoleAppender = new winston.transports.Console({
json: false,
formatter: options => {
const logEntry: ClientSideLoggingResult = {
host: os.hostname(),
pid: process.pid,
level: options.level.toString(),
ts: moment().format(),
eventData: options.meta,
component: globalStrings.componentName
};
return JSON.stringify(logEntry);
}
});
JL().setOptions({ appenders: [consoleAppender] });
The type definitions don't allow a winston transport to be used as an appender.
A (dirty) workaround is to set the appender in pure JS code. But this also works just up to winston:2.4.4.
Apparently winston support is utterly broken in jsnlog.
A fix for this has now been released as part of version 2.29.0.