前言
使用 Node.js 进行服务端开发时,日志记录是必不可少的一项功能。然而,代码中硬编码的 console.log() 并不是一种优雅的日志记录方式,而且还很难对其进行优化和管理。因此,将日志记录作为一个独立的功能提供并将其抽象出来,成为了一种流行的设计方式。@ts-ioc/platform-server-logs 是纯 TypeScript 编写的 npm 日志记载 package,提供了高度可配置,灵活的日志管理方案。下面我们就来详细了解一下它的使用方法。
安装和配置
npm 包的安装很简单,只需要在终端中输入命令:
npm i @ts-ioc/platform-server-logs
在使用之前,我们需要先进行参数配置。package 接口提供了两种初始化方式:
1、通过构造函数初始化
2、通过 configure() 方法配置
下面我们就对这两种方式进行详细介绍:
1、通过构造函数初始化
使用构造函数进行初始化时,我们需要传入一个参数——配置对象。配置对象支持以下参数:
logFilePath
: 用于指定日志输出的文件地址,如果不传如,则不会将日志输出到文件中。consoleEnabled
: 用于控制是否在控制台输出日志,默认为 true。fileEnabled
: 用于控制是否将日志输出到文件中,默认为 false。若需要将日志输出到文件中,必须指定 logFilePath 才能生效。level
: 用于指定日志记录的等级,支持五个等级('debug', 'log', 'warn', 'error' 和 'fatal')。默认为 'info'。
例如:
const logger = new Logger({ logFilePath: 'logs/server.log', consoleEnabled: true, fileEnabled: true, level: 'debug', });
2、通过 configure() 方法配置
通过 configure() 方法进行初始化,我们可以对各项参数进行分别设置。其支持的参数和构造函数中传入的配置对象一致。
const logger = new Logger(); logger.configure({ logFilePath: 'logs/server.log', consoleEnabled: true, fileEnabled: true, level: 'debug', });
日志输出
当我们完成了上述配置之后,就可以开始记录日志了。提供了五个等级的日志记录方法:debug(),info(),warn(),error() 和 fatal()。这些方法的使用方法和 console 对象相似。例如:
logger.debug('debug level log'); logger.log('info level log'); logger.warn('warn level log'); logger.error('error level log'); logger.fatal('fatal level log');
日志输出上的一点小优化,logger.debug() 还做了一点额外的处理来帮助跟踪调试:
-- -------------------- ---- ------- -- ---------- ----- ------ - --- -------- --------------- ----- --- ------------------- --------- - ---- ------ ----- - ------- -------- - --- --- - ------- ----- -- --- ---- -------- ---- ------------ ----- ------- - - ------ ------ - ------- - - --------- -------- - - - - --
可以看到,当我们使用 logger.debug() 时,输出格式会更加详细,并且额外记录了调用发生位置。
示例
-- -------------------- ---- ------- ------ - ------ - ---- ------------------------------- ----- ------ - --- -------- ------------ ------------------ --------------- ----- ------------ ----- ------ -------- --- -------- ------------- - --- - -- ------- ----- ------- -- - -------- ----------------------- -- ----- - ----- ------- - ------------------- ---------- -- ---- ------- - - --------------
当我们执行上述代码时,可以看到 log 文件夹下生成了 server.log 文件,同时还在控制台中输出了如下信息:
[DEBUG] [Sat, 14 Aug 2021 10:18:01 GMT] index.ts:9 Connected to DB
总结
通过使用 @ts-ioc/platform-server-logs,我们实现了项目中的日志记录功能,同时将日志记录作为一个独立的模块管理,并可以通过灵活配置来满足我们不同的需求。
以上就是 @ts-ioc/platform-server-logs 的使用教程,希望对各位前端开发者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671a730d09270238225b2