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

时间:2020-04-15 06:13:10

标签: javascript node.js angular electron

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

请帮助我,我是Pino的NodeJs的新手。像这样的两种不同的记录器实现是否有可能在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')

1 个答案:

答案 0 :(得分:2)

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

npm i pino, pino-pretty

安装 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');