有效的日志记录对于应用程序开发至关重要。它提供了对应用程序行为的见解,并简化了调试。本教程演示了如何使用Pino Logger在Node.js应用程序中实现日志记录,这是一个流行的选择,以其性能和灵活性而闻名。
Pino允许全面的日志记录,包括有关应用程序流的详细信息以及将日志保存到分开文件的能力。它广泛的GitHub社区进一步强调了其可靠性。
本指南涵盖:
最后,您将能够使用最佳实践和Pino在Node.js应用程序中实现强大的登录。
在进行之前,请确保您有:
建议使用像邮递员这样的工具进行API端点测试。
此步骤涉及使用Express.js和Mongoose创建基本的Node.js Crud应用程序。这种方法可确保在现实的应用程序上下文中实现记录功能。
有关CRUD应用程序设置,请参阅有关使用Mongoose和Mongodb Atlas执行CRUD操作的教程。完成后,您将拥有一个node.js应用程序,其中包含创建,读取,更新和删除路由。
在代码更改时安装nodemon
以进行自动服务器重新启动:
NPM安装-G-力nodemon
-g
标志在全球安装, --force
处理潜在的冲突。
安装必要的依赖项:Pino,Express-Pino-Logger和Pino-Pretty:
NPM安装Pino Express-logger Pino-Pinty
创建具有各种日志级别(警告,错误,信息等)的Pino Logger服务。此服务将使用Node.js中间件集成到您的应用程序中。
创建services
目录:
MKDIR服务
使用以下代码创建loggerService.js
内部services
:
const pino = require('pino'); 模块exports = pino({prettyprint:true});
这将创建一个具有相当印刷输出的基本记录器。以后的步骤将涵盖进一步的配置。
接下来,在您的server.js
文件中,导入Logger服务和express-pino-logger
:
const expresspinologger = require('express-pino-logger'); const logger = require('./ services/loggerService');
使用您的Logger服务配置express-pino-logger
:
// ... const loggermiddleware = ExpressPinologger({ 记录器:记录器, 自动:是的, }); app.use(loggeriDdleware); // ...
autoLogging: true
包括日志中的JSON响应。
在您的路线处理程序(例如, foodRoutes.js
)中,导入并使用记录器:
const logger = require('../ services/loggerService'); // ... app.get(“/food”,async(请求,响应)=> { logger.info('获取路线访问'); // ... }); // ...
重新启动服务器( nodemon server.js
)并测试API端点。日志输出将出现在您的终端中。
此步骤侧重于自定义Logger服务并增强日志可读性。
在loggerService.js
中定义自定义日志级别:
// ... const Levels = { http:10, 调试:20, 信息:30, 警告:40, 错误:50, 致命:60, }; // ...
更新loggerService.js
中的pino
配置:
模块。Exports= pino({{ 漂亮的印刷:是的, Custalevels:级别, useonlycustomlevels:是的, 级别:'http', });
使用自定义级别测试(例如, logger.http(...)
)。设置autoLogging: false
如果不需要JSON响应,则在server.js
中进行false。
在loggerService.js
中增强日志格式:
模块。Exports= pino({{ Custalevels:级别, useonlycustomlevels:是的, 级别:'http', PrettyPrint:{ 着色:是的, Levelfirst:是的, TranslateTime:“ Yyyy-DD-MM,H:MM:SS TT', },, });
再次测试以查看改进的日志输出。
要将日志写入文件,请在loggerService.js
中修改pino
配置:
模块。Exports= pino({{ Custalevels:级别, useonlycustomlevels:是的, 级别:'http', PrettyPrint:{ 着色:是的, Levelfirst:是的, TranslateTime:“ Yyyy-DD-MM,H:MM:SS TT', },, },pino.destination(`$ {__ dirname}/logger.log`));
测试您的API;现在,日志将写入services
目录中的logger.log
。
本教程提供了在Node.js应用程序中实现Pino登录的综合指南。记住最佳实践:上下文信息,明确的目的和可读的格式是有效记录的关键。探索用于高级配置选项的官方Pino文档。
以上是如何使用pino-logger在node.js应用程序中实现登录的详细内容。更多信息请关注PHP中文网其他相关文章!