安装依赖:使用 npm 或 yarn 安装 log4js
。
创建日志配置文件:在项目根目录下创建一个名为 log4js.json
的文件,并配置日志输出的格式、级别、路径等信息。以下是一个示例配置:
{ "appenders": { "app": { "type": "file", "filename": "logs/app.log", "maxLogSize": 10485760, "backups": 3, "layout": { "type": "pattern", "pattern": "%d{yyyy-MM-dd hh:mm:ss.SSS} [%p] %m" } }, "console": { "type": "console", "layout": { "type": "pattern", "pattern": "%[[%p]%] %m" } } }, "categories": { "default": { "appenders": ["app", "console"], "level": "info" } } }
上述配置中定义了两个输出器:app 和 console。app 输出到文件 logs/app.log,并配置了最大日志文件大小、备份文件数和日志布局。console 输出到控制台,并设置了简化的日志布局。
创建日志模块:在你的项目中创建一个日志模块,用于处理日志相关的逻辑。
nest generate module logger
创建日志提供者:生成一个日志提供者,用于初始化 log4js 并将其注入到其他模块中。
nest generate provider logger
初始化日志配置:在日志提供者中,初始化 log4js 并加载配置文件。
import { Provider } from '@nestjs/common'; import * as log4js from 'log4js'; const loggerProvider: Provider = { provide: 'Logger', useFactory: () => { log4js.configure('./log4js.json'); return log4js.getLogger(); }, }; export default loggerProvider;
使用日志服务:在其他模块中使用 Logger
服务进行日志记录。
import { Controller, Inject } from '@nestjs/common'; import { Logger } from 'log4js'; @Controller('example') export class ExampleController { constructor( @Inject('Logger') private readonly logger: Logger, ) {} someMethod() { this.logger.debug('Debug message'); this.logger.info('Info message'); this.logger.warn('Warn message'); this.logger.error('Error message'); } }
这样,你就在 NestJS 中使用 log4js-node
进行日志记录。你可以通过在代码中调用 logger.debug()
、logger.info()
、logger.warn()
和 logger.error()
方法,根据需要记录不同级别的日志信息。