gpt4 book ai didi

javascript - Loggly 的 winston 传输无法持续工作

转载 作者:行者123 更新时间:2023-12-02 22:08:25 27 4
gpt4 key购买 nike

我为 Winston 设置了 3 种传输:控制台、文件和 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,
}),
],
});
};

记录器.ts:

import { createLogger } from './logger-utils';

const logger = createLogger();

export default logger;

服务器.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 中的日志。

我觉得我错过了一些非常明显的东西,但我不明白为什么它不会在 app.middleware.ts 中记录我的信息,尽管我在 server.ts 中记录了我的信息,当我考虑到控制台和文件传输都正确记录了所有内容。

关于如何解决此问题以便我的 Loggly 传输像我的其他传输一样工作有什么想法吗?

最佳答案

ctx 对象内部有循环引用,并且可能在 Loggly 端序列化失败。不使用 ctx 对象进行日志记录应该可以解决该问题。

关于javascript - Loggly 的 winston 传输无法持续工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59638787/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com