首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将每个log.info内容写入文本文件

将每个log.info内容写入文本文件
EN

Stack Overflow用户
提问于 2022-09-09 19:28:53
回答 1查看 101关注 0票数 0

我使用Pino和Pino漂亮的软件包来显示记录器。我希望将所有log.info内容(从同一个项目中的多个js文件中调用)写入一个公共文本文件中。

代码语言:javascript
运行
复制
logger.ts
import pinoCaller from 'pino-caller'
import pino from 'pino'
const job_name="job123"
const pinoPretty = pino(
    {
      prettyPrint: {
        messageFormat: `{"job_name":${job_name}, "message":{msg}}`,        
      },
    })
export log=pinoCaller(pinoPretty)

我是否可以将所有的log.info内容从多个文件写入一个普通的文本文件。

让我说我有以下文件:

代码语言:javascript
运行
复制
file1.ts
import {log} from 'logger'
const calculatesum = (a:any,b:any)=>{
log.info('**********')
log.info('sum begins')
const sum=a+b;
log.info('sum is '+sum)
log.info('sum ends')
}
代码语言:javascript
运行
复制
file2.ts
import {log} from 'logger'
const calculateproduct = (a:any,b:any)=>{
log.info('product begins')
const product=a*b;
log.info('product is '+product)
log.info('product ends')
log.info('**********')
}

文本文件的输出如下所示:

代码语言:javascript
运行
复制
***************
sum begins
sum is x
sum ends
product begins
product is y
product ends
***************
EN

回答 1

Stack Overflow用户

发布于 2022-09-10 14:05:11

如果使用Pino v7.x或更高版本,则可以使用Pino传输。

代码语言:javascript
运行
复制
const pinoPretty = pino({
  prettyPrint: {
      messageFormat: `{"job_name":${job_name}, "message":{msg}}`,        
  },
  transport: {
    targets: [
      { level: 'info', target: 'pino/file', options: { destination: '/path/to/store/logs', mkdir: true } },
      { target: 'pino-pretty', options: { destination: '/dev/null' }
    ]
  }
})

或者,您可以使用皮诺。一个如何做到这一点的例子:

代码语言:javascript
运行
复制
const pino = require('pino')

const pinoTee = pino.transport({
  target: 'pino-tee',
  options: {
    filters: {
      info: 'info.log'
    }
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73666718

复制
相关文章

相似问题

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