无法使用 NodeJS 中的 Pino 记录器将日志写入文件
Posted
技术标签:
【中文标题】无法使用 NodeJS 中的 Pino 记录器将日志写入文件【英文标题】:Unable to write the logs to file using Pino logger in NodeJS 【发布时间】:2020-07-28 01:10:38 【问题描述】:我有一个包含两个主要模块的应用程序。一个是ui-component,另一个是service-component。 ui-component 使用winston logger,service-component 使用pino logger。
pino logger 的链接是https://getpino.io/#/。我尝试使用以下代码,但我看不到日志文件,即使没有生成日志文件。 service-component 用作 ui-component 内部的节点模块,它使用 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')
【问题讨论】:
【参考方案1】:这是将 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');
【讨论】:
但是如何将日志写入 file.log 并一起流式传输控制台? 见***.com/questions/63523169/…以上是关于无法使用 NodeJS 中的 Pino 记录器将日志写入文件的主要内容,如果未能解决你的问题,请参考以下文章
如何轮换使用 pino-multi-stream 生成的日志文件?