本文将介绍如何使用 lambda-log-json 包来记录 JSON 格式的日志。在 AWS Lambda 函数等使用 Node.js 的环境中,lambda-log-json 包可以帮助我们更方便地记录日志,并且以 JSON 格式输出。
安装
首先,我们需要安装 lambda-log-json 包。可以使用 npm 命令进行安装:
npm i lambda-log-json
使用方法
在代码文件中,我们需要引入 lambda-log-json 包:
const logger = require('lambda-log-json');
在需要记录日志的地方,我们可以使用以下代码:
logger.log('info', 'hello world');
这里,我们使用 log
方法来记录日志。第一个参数为日志的等级,可以为 info
、error
、warning
、debug
,也可以自定义。第二个参数为日志的内容。
我们也可以使用以下代码直接记录 info 等级的日志:
logger.info('hello world');
lambda-log-json 包的输出默认为 JSON 格式。例如,logger.info('hello world')
的输出如下:
{ "level": "info", "message": "hello world", "service": "lambda", "timestamp": "2022-10-13T09:39:26.715Z" }
上面的输出包含了四个属性:
level
:日志等级,即info
。message
:日志内容。service
:日志服务,这里为固定的"lambda"
。timestamp
:记录日志的时间。
日志等级
在 lambda-log-json 包中,日志有四个等级,分别为 info
、error
、warning
、debug
。我们可以使用以下代码记录各个等级的日志:
logger.info('hello world'); // 记录 info 等级的日志 logger.debug('debug message'); // 记录 debug 等级的日志 logger.warn('warning message'); // 记录 warning 等级的日志 logger.error('error message'); // 记录 error 等级的日志
自定义等级
我们也可以自定义日志等级:
logger.custom('myLevel', 'my message');
使用 custom
方法记录日志,第一个参数为自定义的日志等级名字,第二个参数为日志内容。
日志输出格式
在 lambda-log-json 包中,可以使用 format
方法自定义日志输出格式。以下是一个例子:
logger.format({ level: '${level}', message: '${message}', date: '${date}', service: 'myService' });
其中,${level}
、${message}
、${date}
为输出格式字符串。上面的代码中,我们将 service
属性值修改为 "myService"
。
日志输出位置
在 lambda-log-json 包中,可以使用 setLogStream
方法将日志输出到指定的位置:
const fs = require('fs'); const logStream = fs.createWriteStream('/var/log/myFunction.log', { flags: 'a' }); logger.setLogStream(logStream);
上面的代码将日志输出到 myFunction.log
文件中。
示例代码
以下是一个简单的使用 lambda-log-json 包记录日志的示例代码:
-- -------------------- ---- ------- ----- ------ - --------------------------- --------------- - ----- ------- -- - --------------------- ---------- ----- ------ - - - -- -------------------- ------------ --------------------- ----- ---- ---------- ------ - ----------- ---- ----- --------------------- ---- ---------- -- --
在 AWS Lambda 函数中,我们可以在 CloudWatch 日志中看到记录的日志。如下图所示:
总结
在 Node.js 环境下,使用 lambda-log-json 包可以方便地记录 JSON 格式的日志,帮助我们更好地分析和排查问题。使用方法简单,具有一定的指导意义和学习价值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065f71238a385564ab67a2