一、Logger 的核心价值
在服务端应用中,日志系统承担着三大核心职责:
- 系统监控:实时反馈应用健康状态
- 问题追踪:快速定位异常根源
- 行为审计:记录关键业务操作
NestJS 内置的日志系统提供了开箱即用的解决方案,支持:
✅ 多日志级别管理
✅ 上下文感知日志
✅ 自定义输出格式
✅ 无缝扩展能力
二、基础使用
1. 快速开始
import {
Logger } from '@nestjs/common';
export class UserService {
private readonly logger = new Logger(UserService.name);
createUser(userDto: CreateUserDto) {
try {
this.logger.log('Creating new user...');
// 业务逻辑
this.logger.debug(`User payload: ${
JSON.stringify(userDto)}`);
} catch (error) {
this.logger.error(`Failed to create user: ${
error.message}`);
throw error;
}
}
}
2. 日志级别
NestJS 支持 6 种标准级别(从低到高):
verbose
- 详细调试信息debug
- 调试信息log
- 常规信息(默认级别)warn
- 警告信息error
- 错误信息fatal
- 致命错误
三、全局配置
1. 初始化配置
在 main.ts
中设置全局日志:
import {
NestFactory } from '@nestjs/core';
import {
AppModule } from './app.module';
import {
LogLevel } from '@nestjs/common';
async function bootstrap() {
const logLevels: LogLevel[] = process.env.NODE_ENV === 'production'
? ['log', 'warn', 'error']
: ['debug', 'log', 'warn', 'error'];
const app = await NestFactory.create(AppModule,