Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Winston transport因Loggly未持续工作_Javascript_Node.js_Logging_Winston_Loggly - Fatal编程技术网

Javascript Winston transport因Loggly未持续工作

Javascript Winston transport因Loggly未持续工作,javascript,node.js,logging,winston,loggly,Javascript,Node.js,Logging,Winston,Loggly,我已经为Winston设置了3个传输:控制台、文件和日志(使用) 虽然控制台和文件传输日志正确,但我的日志传输只记录我最初的“服务器侦听端口3001”日志,其他什么都没有,我不明白为什么 logger-utils.ts: import * as winston from 'winston'; import { Loggly } from 'winston-loggly-bulk'; export const createLogger = () => { return winston.

我已经为Winston设置了3个传输:控制台、文件和日志(使用)

虽然控制台和文件传输日志正确,但我的日志传输只记录我最初的“服务器侦听端口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,
      }),
    ],
  });
};
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中的日志

<>我感觉我错过了一些非常明显的东西,但是我不明白为什么它不把我的信息记录在App.MIDLeWielsts中,尽管我在Selv.ts中记录了我的东西,当我认为控制台和文件传输都在正确地记录所有东西的时候,它的意义也就更小了。
关于如何解决此问题以使我的Loggly传输像其他传输一样工作,您有什么想法吗?

ctx
对象内部有循环引用,可能在Loggly端序列化失败。没有
ctx
对象的日志记录应该可以解决这个问题。

我感觉
ctx
对象有循环引用,并且在日志末尾序列化失败。你能在不使用
ctx
对象的情况下尝试登录,看看它是否有效吗?哇,捕捉得好!我没有使用
ctx
进行登录,它按预期工作。如果你能再做一件事,把你的评论作为答案提交给我,这样我就可以接受它并把这个问题总结起来,那就太好了。再次感谢你的帮助。很好。很高兴我能帮上忙。是的,我会把这条评论作为回答。
import logger from '../../core/logger/logger';

export const initializeApp = async (ctx: AppContext) => {
  logger.info('initializeApp', { ctx });
  ....