无法在 NodeJS 中使用 Pino 记录器将日志写入文件

Deb*_*eba 8 javascript logging node.js electron

我有一个有两个主要模块的应用程序。一个是ui-component,另一个是service-component。ui-component 使用 Winston 记录器,service-component 使用 pino 记录器。pino 记录器的链接是https://getpino.io/#/。我尝试使用以下代码,但看不到日志文件,甚至没有生成日志文件。服务组件用作 ui 组件内的节点模块,它使用 Electron、Angular 8 和 NodeJs。当我运行该命令时yarn start,应用程序将运行,并且我会进行一些验证以查看日志文件中的日志。

请帮助我,我是 NodeJs、Pino 的新手。两个不同的记录器实现是否可能会在 NodeJs 应用程序中产生任何冲突?

//import pino from "pino";
/*const dest = pino.extreme();
export const logger = pino(dest);*/

/*const dest = pino.destination('./logs/log')
export const logger = pino({ level: 'info' }, dest)*/


export const logger = require('pino')()
const tee = require('pino-tee')
const fs = require('fs')
const stream = tee(process.stdin)
stream.tee(fs.createWriteStream('myLogFile'), line => line.level >= 0)
stream.pipe(process.stdout)

logger.info('hello world')
logger.error('this is at error level')
Run Code Online (Sandbox Code Playgroud)

Jay*_*tha 5

这是将 Pino 日志保存在日志文件中的解决方案。

npm i pino, pino-pretty
Run Code Online (Sandbox Code Playgroud)

安装 pino 和 pino-pretty

import pino from "pino";

const logger = pino(
  {
    prettyPrint: {
      colorize: true,
      levelFirst: true,
      translateTime: "yyyy-dd-mm, h:MM:ss TT",
    },
  },
  pino.destination("./pino-logger.log")
);


logger.info('hi');
Run Code Online (Sandbox Code Playgroud)

  • 但如何将日志写入 file.log 并一起流式传输控制台? (4认同)