打造 NestJS 日志系统
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 日志系统相关推荐
- 使用Excel打造一款个人日志系统
写在前面 我很多年前看过晨间日志的奇迹这一本书,我深受启发,这本书的中心思想就是通过九宫格的方式写连体日志,自己可以方便查找而有而且有激情去完成这个日志,书中推荐的方法是使用excel写日志.但是自己 ...
- 【产品环境】使用ELK搭建日志系统
为什么80%的码农都做不了架构师?>>> 随着业务不断完善与发展,日志的重要性稳步上升.我们需要从日志中排查错误,以及分析用户行为,为业务发展提供参考意见.因此,需要一套专门的 ...
- 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(二)
现在开始介绍php+mysql+shell监控系统 1.目的 此监控系统主要是通过php+mysql+shell的方式,通过shell脚本对各个机器的其各个服务进行监控,达到及时的了解其各个应用服务的 ...
- 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(一)
前言 记得刚来这家公司的时候,我部门就我一个运维工程师,然后就是经理,刚开始公司平台什么监控都没有,在我与经理的努力下,先搭建nagios+cacti监控平台,后来随着公司业务的增加,平台的功能与服务 ...
- 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(五)
4.监控视图 主要是通过shell脚本进行收集mysql的数据,然后同gnuplot软件进行数据视图化,然后php加载这些图片到web里显示,用到的php文件为view.php day.php.mon ...
- 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(四)
(5)数据库服务器(以甘肃数据库为例,脚本解释参照甘肃web) #!/bin/bash #ip db_ip=$(/sbin/ifconfig eth0|grep "inet addr&quo ...
- 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统
转载来自:http://dl528888.blog.51cto.com/2382721/1034992 前言 记得刚来这家公司的时候,我部门就我一个运维工程师,然后就是经理,刚开始公司平台什么监控都没 ...
- 轻量级日志系统 PLG(**Promtail + Loki + Grafana**)架构技术调研
开源的容器云日志方案 1.Promtail Promtail 是代理,负责收集日志并将其发送给loki.对标ELK中的Logstash. Promtail是一个日志收集的代理,它的主要工作模式是发现存 ...
- 微信 日志服务器 并发大,微信高性能线上日志系统xlog剖析
微信高性能线上日志系统xlog剖析 做移动开发的同学经常会遇到一个头疼的问题,就是当用户反馈一些问题,又比较冷僻难以复现的时候(不是Crash),常常就会陷入一筹莫展的境地.因此,很多人就研发了相关的 ...
最新文章
- Android Activity的生命周期
- pc 页面在移动端怎么获取放大倍数、_百度移动搜索开放适配服务的3种方法
- 【Mysql】MySQL event 计划任务
- oracle 数据库字段名与实体类字段名称不匹配的处理方法
- BIOS误删win10引导 delete boot option如何恢复
- 打造TypeScript的Visual Studio Code开发环境
- 嵌入式系统的性能评价
- 基于台达PLC的步进电机控制
- 《视觉SLAM十四讲》学习笔记
- 用C语言求和、找数组中的最大值以及求平均值
- linux卸载espeak,eSpeak:Linux下的“语音精灵”
- window 删除文件报错显示被程序占用 强制删除被占用的文件
- 忆夕阳下的光辉,给我的父亲
- python基础--初识python
- Python 三维绘图
- BUUCTF:[BJDCTF2020]认真你就输了
- openssl与数字证书的使用
- 微弱信号检测中四种降噪滤波方法的matlab实现
- 汽车外形设计对曲面的评定标准
- linux config