前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何将 winston log 库记录的日志写入 mongo DB 数据库

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

作者头像
Jerry Wang
发布2021-12-14 13:42:00
1.2K0
发布2021-12-14 13:42:00
举报

官网

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 里插入下列代码:

代码语言:javascript
复制
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 数据库集合的唯一格式。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-10-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • How to use MongoDB
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档