首頁 > web前端 > css教學 > 如何使用pino-logger在node.js應用程序中實現登錄

如何使用pino-logger在node.js應用程序中實現登錄

尊渡假赌尊渡假赌尊渡假赌
發布: 2025-03-19 09:52:11
原創
123 人瀏覽過

如何使用pino-logger在node.js應用程序中實現登錄

有效的日誌記錄對於應用程序開發至關重要。它提供了對應用程序行為的見解,並簡化了調試。本教程演示瞭如何使用Pino Logger在Node.js應用程序中實現日誌記錄,這是一個流行的選擇,以其性能和靈活性而聞名。

Pino允許全面的日誌記錄,包括有關應用程序流的詳細信息以及將日誌保存到分開文件的能力。它廣泛的GitHub社區進一步強調了其可靠性。

本指南涵蓋:

  • 配置記錄級別。
  • 自定義日誌輸出以提高終端的可讀性,包括JSON響應包含的選項。
  • 將日誌保存到專用文件。

最後,您將能夠使用最佳實踐和Pino在Node.js應用程序中實現強大的登錄。

先決條件

在進行之前,請確保您有:

  • 具有服務器端開發的Express.js的經驗。
  • 熟悉構建REST API而無需認證。
  • 在代碼編輯器中使用命令行工具或集成終端的熟練程度。

建議使用像郵遞員這樣的工具進行API端點測試。

步驟1:項目設置

此步驟涉及使用Express.js和Mongoose創建基本的Node.js Crud應用程序。這種方法可確保在現實的應用程序上下文中實現記錄功能。

有關CRUD應用程序設置,請參閱有關使用Mongoose和Mongodb Atlas執行CRUD操作的教程。完成後,您將擁有一個node.js應用程序,其中包含創建,讀取,更新和刪除路由。

在代碼更改時安裝nodemon以進行自動服務器重新啟動:

 NPM安裝-G-力nodemon
登入後複製

-g標誌在全球安裝, --force處理潛在的衝突。

步驟2:安裝皮諾

安裝必要的依賴項:Pino,Express-Pino-Logger和Pino-Pretty:

 NPM安裝Pino Express-logger Pino-Pinty
登入後複製

步驟3:創建Logger服務

創建具有各種日誌級別(警告,錯誤,信息等)的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端點。日誌輸出將出現在您的終端中。

步驟4:配置日誌

此步驟側重於自定義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',
  },,
});
登入後複製

再次測試以查看改進的日誌輸出。

步驟5:將日誌存儲在文件中

要將日誌寫入文件,請在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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板