У меня есть Winston, настроенный на 3 транспорта: Console, File и Loggly (используя https://github.com/loggly/winston-loggly-bulk).
В то время как консоль и файл транспортируют журнал правильно, мой транспорт Loggly регистрирует только мой первоначальный журнал «Сервер прослушивает порт 3001» и ничего больше, и я не понимаю, почему.
logger-utils.ts:
import * as winston from 'winston';
import { Loggly } from 'winston-loggly-bulk';
export const createLogger = () => {
return winston.createLogger({
format: winston.format.combine(
winston.format.errors({ stack: true }),
winston.format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss ZZ',
}),
winston.format.json(),
),
transports: [
new winston.transports.Console({
level: process.env.LOGGING_LEVEL,
}),
new winston.transports.File({ filename: `logs/my-app.log` }),
new Loggly({
token: '<token>',
subdomain: '<subdomain>',
tags: ['Winston-NodeJS'],
json: true,
}),
],
});
};
logger.ts:
import { createLogger } from './logger-utils';
const logger = createLogger();
export default logger;
server.ts:
import app from './modules/app/app';
import logger from './core/logger/logger';
app.listen(PORT, () => {
logger.info(`Server listening on port ${3001}`);
});
app.middleware .ts:
import logger from '../../core/logger/logger';
export const initializeApp = async (ctx: AppContext) => {
logger.info('initializeApp', { ctx });
....
Итак, я запускаю сервер и запускаю поток, и когда я проверяю Консоль и Файл, я вижу, что он регистрирует оба сообщения в server.ts и app.middleware.ts. но когда я проверяю свою панель управления Loggly, я вижу только журнал из server.ts.
Мне кажется, что я упускаю что-то невероятно очевидное, но я не понимаю, почему он не регистрирует мою информацию в приложении. middleware.ts, несмотря на то, что я записываю свои данные в server.ts, и это имеет еще меньше смысла, если учесть, что и консольный, и файловый транспорты регистрируют все правильно.
Любые идеи о том, как решить эту проблему, чтобы мой Loggly транспорт работает как другие мои транспорты?