首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误[ERR_STREAM_DESTROYED]:无法在与温斯顿一起破坏流后调用写

错误[ERR_STREAM_DESTROYED]:无法在与温斯顿一起破坏流后调用写
EN

Stack Overflow用户
提问于 2020-08-22 14:55:51
回答 2查看 13.4K关注 0票数 6

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

代码语言:javascript
复制
/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)

我的温斯顿配置是:

代码语言:javascript
复制
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;
EN

回答 2

Stack Overflow用户

发布于 2020-08-24 20:04:26

我有完全相同的错误,行号和一切,发生在aws弹力豆杆上。

它在本地工作,但是当它到达aws时,出现了错误,因为节点是作为用户'webapp‘运行的。看起来,该用户没有将文件写入/var/log的权限,这似乎很奇怪。因此,我将其更改为登录到/tmp,错误就消失了。注意:确保日志文件属于webapp (或任何运行节点应用程序的用户),否则错误将持续存在。

票数 5
EN

Stack Overflow用户

发布于 2022-05-16 12:41:22

在我的例子中,应该保存的日志目录不存在,这导致了错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63537576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档