Недавно обновлен до winston 3.2.1. Я тестировал некоторые новые функции и ожидал сообщения об ошибке. Я обнаружил, что мой сервер сломался. Причина -> TypeError: logger.error is not a function
Кто-нибудь еще сталкивался с этой проблемой?
Моя конфигурация winston:
const options: LoggerOptions = {
level: 'info',
format: format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.json()
),
transports: [
new transports.Console(),
new transports.File({ filename: 'logs/error.log', level: 'error' }),
new transports.File({ filename: 'combined.log' })
]
};
const logger: Logger = createLogger(options);
export default logger;
Она была импортирована в другие модули как logger.error(err.message, err);
и все работало нормально до сих пор.
Я посмотрел на index.d.ts и Logger, а также на log / error / info и т.д. c, поэтому error действительно принимает сообщения и мета-данные, но у меня сохраняется эта ошибка типа.
Я также пытался передать как infoObject
- я получаю ту же ошибку.
interface Logger extends NodeJSStream.Transform {
silent: boolean;
format: logform.Format;
levels: Config.AbstractConfigSetLevels;
level: string;
transports: Transport[];
exceptions: ExceptionHandler;
profilers: object;
exitOnError: Function | boolean;
log: LogMethod;
add(transport: Transport): Logger;
remove(transport: Transport): Logger;
clear(): Logger;
close(): Logger;
// for cli and npm levels
error: LeveledLogMethod;
warn: LeveledLogMethod;
help: LeveledLogMethod;
data: LeveledLogMethod;
info: LeveledLogMethod;
debug: LeveledLogMethod;
prompt: LeveledLogMethod;
http: LeveledLogMethod;
verbose: LeveledLogMethod;
input: LeveledLogMethod;
silly: LeveledLogMethod;
// for syslog levels only
emerg: LeveledLogMethod;
alert: LeveledLogMethod;
crit: LeveledLogMethod;
warning: LeveledLogMethod;
notice: LeveledLogMethod;
query(options?: QueryOptions, callback?: (err: Error, results: any) => void): any;
stream(options?: any): NodeJS.ReadableStream;
startTimer(): Profiler;
profile(id: string | number, meta?: LogEntry): Logger;
configure(options: LoggerOptions): void;
child(options: Object): Logger;
new(options?: LoggerOptions): Logger;
}
ошибка проп ->
interface LeveledLogMethod {
(message: string, callback: LogCallback): Logger;
(message: string, meta: any, callback: LogCallback): Logger;
(message: string, ...meta: any[]): Logger;
(infoObject: object): Logger;
}