关于日志:如何将-winston-log-库记录的日志写入-mongo-DB-数据库

8次阅读

共计 1412 个字符,预计需要花费 4 分钟才能阅读完成。

官网

Winston 非常适合配置不同的日志目的地。在咱们的小应用程序中,让咱们创立另一个传输。这次我想把日志保留到一个数据库中,MongoDB 简洁一些。在 logger.js 文件上,复制以下代码块。确保装置 Winston MongoDB,即 npm install winston-mongodb。

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 数据库汇合的惟一格局。

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

正文完
 0