前言
随着前端项目的越来越复杂,日志记录变得越来越重要。简单地在控制台输出一些东西对于排查问题的帮助很有限。这时候,就需要用到一个好用的日志记录库。本文介绍的 npm 包 orz-logit 可以满足这个需求,并提供了一些有用的功能。
安装
首先,你需要在你的项目中安装 orz-logit。可以使用下面的命令:
npm install orz-logit --save
然后,在你的 JavaScript 文件中,引入 orz-logit:
import log from 'orz-logit';
基本用法
orz-logit 是一个日志记录库,它提供了一些不同级别的日志记录方法。使用它们可以记录不同类型的信息。
log 方法
使用 log
方法可以记录普通的信息。例如:
log('Hello, world!');
这会在控制台输出一条消息:
[INFO] Hello, world!
warn 方法
使用 warn
方法可以记录警告信息。例如:
log.warn('Something may be wrong.');
这会在控制台输出一条警告消息:
[WARN] Something may be wrong.
error 方法
使用 error
方法可以记录错误信息。例如:
log.error('Something has gone wrong!');
这会在控制台输出一条错误消息:
[ERROR] Something has gone wrong!
info 方法
使用 info
方法可以记录一些额外信息。例如:
log.info('Doing some heavy work...');
这会在控制台输出一条信息:
[INFO] Doing some heavy work...
debug 方法
使用 debug
方法可以记录一些调试信息。例如:
log.debug('Current state:', this.state);
这会在控制台输出一条调试信息:
[DEBUG] Current state: { ... }
进阶用法
除了基本的日志记录之外,orz-logit 还提供了一些进阶用法。
日志级别
orz-logit 支持不同级别的日志记录,包括 INFO、WARN、ERROR、DEBUG。可以通过设置 log.level
属性来调整日志级别。
例如,如果只想记录 WARN 级别及以上的信息,可以这样设置:
log.level = log.levels.WARN;
这样,使用 log.info()
记录的信息就不会被输出。只有使用 log.warn()
或 log.error()
记录的信息才会输出。
自定义输出
如果希望将日志记录到文件或者发送到后台服务器,可以通过设置 log.write
属性来实现。这个属性需要一个函数作为参数,这个函数会在每次记录日志时被调用,接受一个字符串参数,这个参数就是日志记录的内容。
例如,可以将日志记录到文件中:
log.write = function (message) { // 写入文件 fs.appendFileSync('mylog.txt', message); };
或者,可以将日志发送到服务器:
log.write = function (message) { // 发送请求 axios.post('/api/log', { message: message }); };
日志格式
orz-logit 的默认日志格式如下:
[LEVEL] MESSAGE
其中,LEVEL 表示日志级别(INFO、WARN、ERROR、DEBUG),MESSAGE 表示日志内容。
如果希望自定义日志格式,可以设置 log.format
属性。它需要一个函数作为参数,这个函数接受三个参数,分别是日志级别、时间戳和日志内容,返回一个字符串表示日志记录的格式。
例如:
log.format = function (level, timestamp, message) { return `[${timestamp.toISOString()}] ${level}: ${message}`; };
这会将日志格式更改为:
[2022-01-01T00:00:00.000Z] LEVEL: MESSAGE
示例代码
下面是一个完整的示例,演示了 orz-logit 的基本用法和进阶用法:
-- -------------------- ---- ------- ------ --- ---- ------------ --------- - ----------------- --------- - -------- --------- - -------------------- -- ------- --------- -- ---------- - -------- ------- ---------- -------- - ------ ------------------------------ ---------- ------------ -- ----- ------- - ------------- - ------------------- ------- -------------- - ------------- - --------------- --------- --------------- --- - -- --- - ----- ----- - -------------------- ---- -------- ----- - - - ----- --- - --- ---------- ------------------
这段代码会在控制台输出以下内容:
14/02/2022, 12:34:56 [DEBUG] Creating MyClass instance... 14/02/2022, 12:34:56 [INFO] Doing something important... 14/02/2022, 12:34:56 [ERROR] Something went wrong: Error: Something bad happened Writing to file: 14/02/2022, 12:34:56 [DEBUG] Creating MyClass instance... Writing to file: 14/02/2022, 12:34:56 [INFO] Doing something important... Writing to file: 14/02/2022, 12:34:56 [ERROR] Something went wrong: Error: Something bad happened
同时,会在当前目录下生成一个 mylog.txt 文件,其中包含以下内容:
14/02/2022, 12:34:56 [DEBUG] Creating MyClass instance... 14/02/2022, 12:34:56 [INFO] Doing something important... 14/02/2022, 12:34:56 [ERROR] Something went wrong: Error: Something bad happened
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005672381e8991b448e3997