gpt4 book ai didi

Node.js morgan 记录器输出未出现在控制台上

转载 作者:太空宇宙 更新时间:2023-11-04 03:02:10 24 4
gpt4 key购买 nike

我正在处理一个带有 Node.js 后端的新项目,我的 morgan 记录器工作得非常好。起初,我无法使用任何预定义的 morgan 模板(tinyshort 等)从中获得任何输出,没有任何内容传播到输出。我提供了自定义日志记录函数来验证 morgan 是否在我的堆栈上被调用:

app.use(morgan((tokens, req, res) => {
console.log('AAAAAAAAAAA');
return 'ABABABABABAA';
}, { stream: process.stdout }));

AAAAAAAAAAA 的序列确实通过日志记录函数内的 console.log 传播到控制台输出(证明 morga 实际上在每个请求上调用),但日志记录函数根本不提供它的 ABABABABABA 序列。

只要我能够想象预定义格式可能会由于 req/res 对象的非常规名称而失败(顺便说一下,这不是一种情况),那么从记录器函数返回纯文本显然应该直接传播到输出。

编辑

将 morgan 选项设置为 {immediate: true} 也无法解决问题。

最佳答案

就我而言,问题是我在创建应用程序后没有立即调用“morgan”。当我改变立场时,问题就解决了。我在“morgan ”页面中找不到任何关于此的引用,但我在另一个答案中找到了它:Express Morgan not writing logs to file or STDOUT

工作解决方案:

let app = express()
app.use(morgan('combined')) <--- morgan right after app
app.set('views', './views')
app.set('view engine', 'ejs')
app.use('/', routes)

无法运行的代码(以前):

let app = express()
app.set('views', './views')
app.set('view engine', 'ejs')
app.use('/', routes)
app.use(morgan('combined')) <--- morgan

关于Node.js morgan 记录器输出未出现在控制台上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52199510/

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