簡體   English   中英

在 Ubuntu 上的 Node.js 中的 winston-mongodb 記錄器中的 ippedMax 不工作

[英]cappedMax not working in winston-mongodb logger in Node.js on Ubuntu

我已經使用 winston 模塊在 Node.js 中創建了一個記錄器,並通過要求帶有以下選項的 winston-mongodb 模塊添加了 MongoDB 傳輸:

{
  db: config.db[k.DB_ENV.AUTHOR],
  username: config.dbUser,
  password: config.dbPassword,
  collection: 'log-aggregation',
  storeHost: true,
  capped: true,
  cappedMax: 10 // documents
}

我希望記錄器為每 10 個文檔創建一個新集合 但記錄器繼續登錄同一個集合。 我評論了collection: 'log-aggregation'行以檢查選項是否真的有效,然后它開始記錄到默認的'log'集合。

那么我的錯誤在哪里? cappedMax選項是否有最小文檔大小cappedMax 我嘗試使用cappedSize選項也有 10 到 1000 個值,但仍然沒有創建新的集合。

我想知道 ippedSize 和 ippedMax 選項的最小和最大允許值?

我還想知道創建的新集合的名稱是什么?

這是我用來獲取多個日志的方法:

var winston = require('winston');
require('winston-mongodb').MongoDB;


winston.loggers.add('userLog',{
    transports : [
        new(winston.transports.MongoDB)({
            db : 'mongodb://username:password.mongolab.com:5555/log_db',
            collection : 'userLog',
            capped : true
        }),
    ]
});
winston.loggers.add('profileLog',{
    transports : [
        new(winston.transports.MongoDB)({
            db : 'mongodb://username:password.mongolab.com:5555/log_db',                collection : 'profileLog',
            capped : true
        }),
    ]
});

它工作正常,沒有可觀察到的延遲。

附注:您可以在capped:true之后或之前添加所需的所有選項capped:true

玩得開心!

所以只是為了確認 winston-mongodb 的“上限”功能是:


capped:       // true or false
cappedMax:    // [int] number of documents per collection
cappedSize:    // [byte-size] Size of documents capped per collection in bytes

正在工作,但重要的是要注意,為了使其工作,您不能使用這些屬性修改現有集合。 假設您是從頭開始。 例如,如果您已經創建了您的收藏,現在希望為其添加上限功能,那么這將行不通!

您需要將數據庫中的集合完全轉儲並從頭開始,或者只是創建一個新集合。

例如,這是從我的傳輸數組中提取的代碼。

new transports.MongoDB({
          level: 'error',
          db: process.env.MONGO_CONNECTION_LOG_STRING,
          options: { useUnifiedTopology: true },
          format: combine(timestamp(), json()),
          collection: 'prod_log',
          capped: true,
          cappedMax: 2
        })

所以目前我確定這個集合在我的數據庫中不存在,這個配置只會允許在任何時候將 2 個文檔存儲在我的集合中,並且任何未來的錯誤都會覆蓋任何現有的錯誤,所以你只會具有集合中的最后兩個“錯誤”日志/文檔。

玩了一段時間,我希望它有所幫助。

我有同樣的問題,但我通過簡單地更新 winston-mongodb 版本 npm i winston-mongodb 來解決它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM