第二十三章 Nest集成日志框架Winston

Winston是一个非常流行的Node.js日志框架,而Nest.js是一个基于Node.js的后端框架。在Nest中集成Winston可以让我们更方便地记录和管理日志。在上章我们学习了Node中使用Winston框架,本章我们将学习在Nest集成日志框架Winston

首先我们创建一下Nest项目:

nest new nest-winston

1721531895422.png

import { LoggerService } from '@nestjs/common';

export class MyLogger implements LoggerService {
    log(message: string, context: string) {
        console.log(`log---[${context}]---`, message)
    }

    error(message: string, context: string) {
        console.log(`error---[${context}]---`, message)
    }

    warn(message: string, context: string) {
        console.log(`warn---[${context}]---`, message)
    }
}

接着在 main.ts 里引入

app.useLogger(new MyLogger);

1721532239317.png
启动服务:

npm run start:dev

1721532303445.png
可以看到 logger 换成我们自己自定义的了
修改 app.controller.ts:

import {
    Controller, Get, Logger } from '@nestjs/common';
import {
    AppService } from './app.service';

@Controller()
export class AppController {
   
  constructor(private readonly appService: AppService) {
    }

  private logger = new Logger();

  @Get()
  getHello(): string {
   
    this.logger.log('Hello World!', AppController.name)

    return this.appService.getHello();
  }
}

1721532530669.png
访问游览器 http://localhost:3000/
1721532585182.png
可以看到控制台打印了自定义的 logger 的自定义
1721532608432.png
安装 winston

npm install --save  winston
// 或
pnpm install --save  winston

1721532777516.png
修改MyLogger:

import {
    LoggerService } from '@nestjs/common';
import {
    createLogger, Logger ,format, transports} from 'winston';

export class MyLogger implements LoggerService {
   

    private logger:Logger;


    constructor(){
   
        this.logger=createLogger({
   
            level:'debug',
            format:format.combine(
                format.timestamp(),
                format.json()
            ),
            transports:[
                new transports.Console()
            ]
        })
    }

    log(message: string, context: string) {
   
        this.logger.log('info', `[${
     context}] ${
     message}`);
    }

    error(message: string, context: string) {
   
        this.logger.log('error', `[${
     context}] ${
     message}`);
    }

    warn(message: string, context: string) {
   
        this.logger.log('warn', `[${
     context}] ${
     message}`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫ゞ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值