天天看點

如何将 winston log 庫記錄的日志寫入 mongo DB 資料庫

How to use MongoDB

下載下傳并安裝 MongoDB 社群伺服器。

導航到您的環境變量(對于 Windows 使用者),在使用者變量下,選擇路徑 → 編輯 → 建立,添加 C:\Program Files\MongoDB\Server\4.4\bin(4.4 可能因您計算機上安裝的 MongoDB 版本而異).

打開指令提示符并鍵入 mongo。 這将檢查您是否已成功安裝 MongoDB。 MongoDB shell 版本将列印在您的終端上,這意味着您的安裝成功。

輸入 use logs 建立資料庫日志。

輸入 db.createCollection(“server_logs”) 以建立 collection.

在 logger.js 裡插入下列代碼:

const { createLogger, format, transports } = require('winston');

// Import mongodb
require('winston-mongodb');

module.exports = createLogger({
transports:[

// File transport
    new transports.File({
    filename: 'logs/server.log',
    format:format.combine(
        format.timestamp({format: 'MMM-DD-YYYY HH:mm:ss'}),
        format.align(),
        format.printf(info => `${info.level}: ${[info.timestamp]}: ${info.message}`),
)}),

// MongoDB transport
    new transports.MongoDB({
        level: 'error',
        //mongo database connection link
        db : 'mongodb://localhost:27017/logs',
        options: {
            useUnifiedTopology: true
        },
        // A collection to save json formatted logs
        collection: 'server_logs',
        format: format.combine(
        format.timestamp(),
        // Convert logs to a json format
        format.json())
    })]
});
      

運作 node app.js 以啟動伺服器并通路以下 URL 以觸發伺服器響應和請求。

http://localhost:3000/

http://localhost:3000/calc

http://localhost:3000/hello

日志将記錄到 server.log 檔案中。 打開 server.log 檢視記錄的日志。

任何錯誤日志都将記錄在 MongoDB 資料庫中。

輸入 db.server_logs.find() 以檢視日志。

MongoDB 傳輸采用 JSON 格式。 要将這些日志儲存在 Mongo 資料庫中,我們需要将它們轉換為 JSON 格式。 這是将記錄插入 Mongo 資料庫集合的唯一格式。

如何将 winston log 庫記錄的日志寫入 mongo DB 資料庫