工具版本
- nodejs:20.9.0
- npm:10.1.0
- nestjs:10.0.0
安装相关包
pnpm i winston nest-winston winston-daily-rotate-file
配置日志
日志配置会用到环境变量,具体怎么请参考从零开始搭建nestjs项目-1-环境配置 - 掘金 (juejin.cn)
新建日志的配置文件(/src/config/log.config.ts):
import { WinstonModuleOptions } from "nest-winston"
import { transports, format } from "winston";
const env = process.env.NODE_ENV || 'development'
import "winston-daily-rotate-file";
export const winstonModuleOptions: WinstonModuleOptions = {
transports: (() => {
//开发环境下输出到控制台
if (env === 'development') {
return [new transports.Console()]
}
if (env === 'production') {
return [
// 记录错误日志
new transports.DailyRotateFile({
level: "error",
dirname: `logs/errors`,
filename: `%DATE%-error.log`,
datePattern: "YYYY-MM-DD",
maxSize: "20m"
}),
new transports.DailyRotateFile({