NestJS项目日志打印方法

方法一:(推荐)建立一个基于 Winston ( Nest官方推荐,或其他类似日志工具 ) 的 Logger 公用基础类。

基础类的作用主要是集中配置,比如日志的格式化、最大长度、日志文件输出位置、命名和定时清理等。

然后通过继承或者实例化都行,总之在需要打印的地方,调用其打印方法,实现打印动作。

方法二: Nestjs自带的打印方法:

import Logger from @nestjs/common    // 引入
new Logger('contextName').log('message')    // 使用

方法三:console.log:最原始,不够高级优雅

系统日志配置入口

打印 Nest 系统日志:需要 implement  LoggerService 接口 ( 配置入口 main.js )

import Logger from @nestjs/common
const app = await NestFactory.create<NestExpressApplication>(ApplicationModule, {logger: new Logger()    // implement of interface LoggerService})

打印 TypeORM 日志:需要 implement  ( typeorm 的 ) Logger 接口。

import { Logger } from 'typeorm'
export class OrmLogger extends BasicLogger implements LoggerTypeOrmModule.forRoot({logger: new OrmLogger()
})

自定义处日志打印

一个通过继承基于Winston的基础类实现 自定义 日志打印的例子。

export class GrpcService extends BasicLogger {constructor() {super('grpc')    // 这里是设置日志的 context 名称}async call<T = any>() {// 准备好相关信息 在调用grpc的时候,进行日志打印const print = this.logger["info"] // this.logger 是继承自 BasicLogger 的打印动作方法const message = `${this.requestId} ${code} "${msg}" ${bytes}bytes ${cost}ms`print(message, { label: cmd, autoLabelCase: false, extra })    // 打印}
}

打造 NestJS 日志系统相关推荐

  1. 使用Excel打造一款个人日志系统

    写在前面 我很多年前看过晨间日志的奇迹这一本书,我深受启发,这本书的中心思想就是通过九宫格的方式写连体日志,自己可以方便查找而有而且有激情去完成这个日志,书中推荐的方法是使用excel写日志.但是自己 ...

  2. 【产品环境】使用ELK搭建日志系统

    为什么80%的码农都做不了架构师?>>>    随着业务不断完善与发展,日志的重要性稳步上升.我们需要从日志中排查错误,以及分析用户行为,为业务发展提供参考意见.因此,需要一套专门的 ...

  3. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(二)

    现在开始介绍php+mysql+shell监控系统 1.目的 此监控系统主要是通过php+mysql+shell的方式,通过shell脚本对各个机器的其各个服务进行监控,达到及时的了解其各个应用服务的 ...

  4. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(一)

    前言 记得刚来这家公司的时候,我部门就我一个运维工程师,然后就是经理,刚开始公司平台什么监控都没有,在我与经理的努力下,先搭建nagios+cacti监控平台,后来随着公司业务的增加,平台的功能与服务 ...

  5. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(五)

    4.监控视图 主要是通过shell脚本进行收集mysql的数据,然后同gnuplot软件进行数据视图化,然后php加载这些图片到web里显示,用到的php文件为view.php day.php.mon ...

  6. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(四)

    (5)数据库服务器(以甘肃数据库为例,脚本解释参照甘肃web) #!/bin/bash #ip db_ip=$(/sbin/ifconfig eth0|grep "inet addr&quo ...

  7. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统

    转载来自:http://dl528888.blog.51cto.com/2382721/1034992 前言 记得刚来这家公司的时候,我部门就我一个运维工程师,然后就是经理,刚开始公司平台什么监控都没 ...

  8. 轻量级日志系统 PLG(**Promtail + Loki + Grafana**)架构技术调研

    开源的容器云日志方案 1.Promtail Promtail 是代理,负责收集日志并将其发送给loki.对标ELK中的Logstash. Promtail是一个日志收集的代理,它的主要工作模式是发现存 ...

  9. 微信 日志服务器 并发大,微信高性能线上日志系统xlog剖析

    微信高性能线上日志系统xlog剖析 做移动开发的同学经常会遇到一个头疼的问题,就是当用户反馈一些问题,又比较冷僻难以复现的时候(不是Crash),常常就会陷入一筹莫展的境地.因此,很多人就研发了相关的 ...

最新文章

  1. Android Activity的生命周期
  2. pc 页面在移动端怎么获取放大倍数、_百度移动搜索开放适配服务的3种方法
  3. 【Mysql】MySQL event 计划任务
  4. oracle 数据库字段名与实体类字段名称不匹配的处理方法
  5. BIOS误删win10引导 delete boot option如何恢复
  6. 打造TypeScript的Visual Studio Code开发环境
  7. 嵌入式系统的性能评价
  8. 基于台达PLC的步进电机控制
  9. 《视觉SLAM十四讲》学习笔记
  10. 用C语言求和、找数组中的最大值以及求平均值
  11. linux卸载espeak,eSpeak:Linux下的“语音精灵”
  12. window 删除文件报错显示被程序占用 强制删除被占用的文件
  13. 忆夕阳下的光辉,给我的父亲
  14. python基础--初识python
  15. Python 三维绘图
  16. BUUCTF:[BJDCTF2020]认真你就输了
  17. openssl与数字证书的使用
  18. 微弱信号检测中四种降噪滤波方法的matlab实现
  19. 汽车外形设计对曲面的评定标准
  20. linux config

热门文章

  1. datatables mysql_jquery - Datatables - 数据表外的搜索框
  2. 移动硬盘数据丢失恢复教程
  3. 用matlab给女友绘制一幅绕线画
  4. 电脑显卡4种接口类型(转)
  5. 单片机到底是个什么东西?
  6. 网站页面建设(制作头部)
  7. Xcode修改模拟器Simulator系统版本
  8. 让人困惑,华为疑似狙击OPPO而不是发展更为凶猛的小米
  9. Ubuntu更新源切换为香港中文大学
  10. 三星 android n 主体,三星GalaxyS6等多款手机升级Android N需到年底