Node.js 日誌記錄


日誌記錄是任何應用程式(無論是在 Node.js 還是其他程式語言中開發)中非常重要的組成部分。日誌記錄幫助我們檢測應用程式的異常行為以及即時的錯誤和異常。 應該在應用程式中新增邏輯日誌。這些日誌幫助使用者識別任何錯誤並在緊急情況下解決問題。

目前使用者可以使用 5 個不同的日誌級別。這些日誌級別用於定義不同型別的日誌,並幫助使用者識別不同的場景。必須仔細配置日誌級別才能充分利用這些日誌:

  • 錯誤 (error)

  • 警告 (warn)

  • 資訊 (info)

  • 詳細 (verbose)

  • 除錯 (debug)

中介軟體

您可以將此中介軟體放入請求管道中,以便可以直接使用 debug 模組的強大功能來列印日誌。debug 模組的最大優點是幾乎所有模組都使用 debug 來列印日誌。您可以使用 debug 模組來列印日誌和錯誤。

此中介軟體主要用作中間管道——您可以將日誌傳遞到此管道中,這些日誌將列印到日誌檔案中。請求和響應也透過此中介軟體進行日誌記錄。它在 Express 應用程式中非常有用。設定中介軟體很容易,可以在任何使用的框架中完成。

配置中介軟體的檔案

應用程式

const app = express()
const logMiddleware = require('my-logging-middleware')
app.use(logMiddleware)

路由器

const router = express.Router()
const routeLoggingMiddleware = require('my-route-logging-middleware')
router.use(routeLoggingMiddleware)

錯誤

const app = express();
const errorLoggingMiddleware = require('my-error-logging-middleware')
app.use(errorLoggingMiddleware)

Winston 包

您還可以使用 winston 包進行日誌記錄。它還提供不同的日誌級別、查詢以及分析器。

應用程式

const app = express()
const winstonPackage = require('winston')
const consoleTransport = new winstonPackage.transports.Console()
const myWinstonOptions = {
   transports: [consoleTransport]
}
const logger = new winstonPackage.createLogger(myWinstonOptions)

function logRequest(req, res, next) {
   logger.info(req.url)
   next()
}
app.use(logRequest)

function logError(err, req, res, next) {
   logger.error(err)
   next()
}
app.use(logError)

更新於:2021年5月20日

瀏覽量:336

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.