gpt4 book ai didi

node.js - 错误 [ERR_STREAM_DESTROYED] : Cannot call write after a stream was destroyed with Winston

转载 作者:行者123 更新时间:2023-12-04 01:15:23 25 4
gpt4 key购买 nike

如果我使用 winston-daily-rotate-file ,我会收到 winston 日志记录错误。
当我使用 webpack 构建我的应用程序时,没有错误,但是当我在下面执行构建时,错误来了(堆栈跟踪):

/app/web-app/server/node_modules/winston/lib/winston/logger.js:307
throw ex;
^

Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed
at doWrite (_stream_writable.js:399:19)
at writeOrBuffer (_stream_writable.js:387:5)
at WriteStream.Writable.write (_stream_writable.js:318:11)
at Object.<anonymous> (/mnt/e/workspace/codebase/hermes_dashboard/app/web-app/server/node_modules/file-stream-rotator/FileStreamRotator.js:616:26)
at DailyRotateFile.log (/mnt/e/workspace/codebase/hermes_dashboard/app/web-app/server/node_modules/winston-daily-rotate-file/daily-rotate-file.js:157:20)
at DailyRotateFile._write (/mnt/e/workspace/codebase/hermes_dashboard/app/web-app/server/node_modules/winston-transport/index.js:82:19)
at doWrite (/mnt/e/workspace/codebase/hermes_dashboard/app/web-app/server/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:428:64)
at writeOrBuffer (/mnt/e/workspace/codebase/hermes_dashboard/app/web-app/server/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:417:5)
at DailyRotateFile.Writable.write (/mnt/e/workspace/codebase/hermes_dashboard/app/web-app/server/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:334:11)
at DerivedLogger.ondata (/mnt/e/workspace/codebase/hermes_dashboard/app/web-app/server/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:681:20)
at DerivedLogger.emit (events.js:327:22)
我的 winston 配置是:
const winston = require('winston');
const DailyRotateFile = require('winston-daily-rotate-file');

var options = {
file: {
zippedArchive: true,
prettyPrint: true,
json: false,
filename: `/app/web-app/server/logs/server_logs/server.log`,
datePattern: '.yyyy-MM-dd',
handleExceptions: true,
maxsize: '10m', // 10MB
maxFiles: 5,
colorize: false,
},
console: {
level: 'debug',
prettyPrint: true,
handleExceptions: true,
json: false,
colorize: true,
},
};

var logger = new winston.createLogger({
transports: [
// new winston.transports.DailyRotateFile(options.file),
new DailyRotateFile(options.file),
new winston.transports.Console(options.console),
],
exitOnError: false, // do not exit on handled exceptions
});

logger.stream = {
write: message => {
logger.info(message);
},
};

module.exports = logger;

最佳答案

我有完全相同的错误、行号和所有内容,发生在 aws elasticbeanstalk 上。
它在本地工作,但是当它到达 aws 时,发生错误是因为 Node 以用户“webapp”的身份运行。看起来该用户没有将文件写入/var/log 的权限,这似乎很奇怪。所以我将其更改为登录到/tmp 并且错误消失了。注意:确保日志文件归 webapp(或运行 Node 应用程序的任何用户)所有,否则错误将持续存在。

关于node.js - 错误 [ERR_STREAM_DESTROYED] : Cannot call write after a stream was destroyed with Winston,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63537576/

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