官网

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 transportnew 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 transportnew transports.MongoDB({level: 'error',//mongo database connection linkdb : 'mongodb://localhost:27017/logs',options: {useUnifiedTopology: true},// A collection to save json formatted logscollection: 'server_logs',format: format.combine(format.timestamp(),// Convert logs to a json formatformat.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的原创文章,尽在:“汪子熙”:

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

  1. winston log 库如何创建 custom logger

    代码: const { createLogger, format, transports, config } = require('winston');const usersLogger = crea ...

  2. es获取最大时间的记录_Python日志写入ES之五种方案比较

    ​实时/准实时方案可以使用以下四种方式实现: flume+kafka+spark准实时写入ES logging + CMRESHandler实时写入ES 利用python中的Elasticsearch ...

  3. 利用winston和morgan记录express日志信息

    最近忙着做毕业设计,项目是一个多用户博客程序.后端技术栈为express+mongodb,为了能够更为详细的记录程序运行日志,便开始研究如何使用winston和morgan.项目代码已托管到GitHu ...

  4. 自动清理归档日志_LGWR 日志写入进程

    为了实现为多用户提供服务且保证系统性能,在一个多进程Oracle 系统(multiprocess Oracle system)中,存在多个被称为后台进程(background process)的Ora ...

  5. boost::log模块实现将日志记录初始化到远程 syslog 服务器

    boost::log模块实现将日志记录初始化到远程 syslog 服务器 实现功能 C++实现代码 实现功能 boost::log模块实现将日志记录初始化到远程 syslog 服务器 C++实现代码 ...

  6. slf4j注解log报错_SpringBoot自定义日志注解,用于数据库记录操作日志,你用过吗?...

    大家好,我是程序员7歌! 今天我将为大家讲解如何通过自定义注解记录接口访问日志.一般的开发中,有两种方式可以记录日志信息,第一种:把接口日志信息保存到日志文件中,第二种:把接口操作日志保存到数据库中, ...

  7. 如何禁用请求库中的日志消息?

    本文翻译自:How do I disable log messages from the Requests library? By default, the Requests python libra ...

  8. iOS一个灵活可扩展的开源Log库

    目前大部分iOS的小型开发团队都不是很重视log,导致很多线上发生的或者用户反馈的bug难以排查.对于App来说一个好的日志系统可以帮助我们用最小的代价来排查一些疑难bug,我们唯一要做的就是在合适的 ...

  9. Python + logging 输出到屏幕,将log日志写入文件(亲测)

    日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数 ...

最新文章

  1. 12、OpenCV实现图像的空间滤波——图像平滑
  2. cap = cv2.VideoCapture(0).read()摄像头读取图片用法
  3. Android 聊天软件客户端
  4. RTSP流媒体数据传输的两种方式(TCP和UDP)
  5. python调用dll函数_从Python调用DLL函数
  6. c语言中缺少link文件夹,c – Cmake找不到使用“link_directories”的库
  7. 逻辑回归(logistic regression)的本质——极大似然估计
  8. 字体大小 js 控制
  9. bzoj 3156: 防御准备
  10. Flex 弹性布局(****************************************************)
  11. baum welch java_Baum Welch估计HMM参数实例
  12. 推导余弦距离和欧式距离的关系
  13. 【Android】spinner下拉框样式修改
  14. 人体的神经系统图 分布,人的神经系统分布图
  15. su的2019面试准备
  16. 硬件知识:视频分配器、画面分割器、矩阵、延长器相关知识介绍
  17. 解决克隆RHEL7后网络无法启动问题
  18. php静态页面制作,ps制作静态的html页面
  19. 字节跳动bytedance西瓜视频播放器研究
  20. 操作系统 (二): 进程与线程

热门文章

  1. Chrome的vimium插件的使用笔记
  2. MZOJ 1134: 二叉苹果树
  3. Qt网络编程之实例一GET方式
  4. set 赋值(转载)
  5. Struts标签和OGNL表达式
  6. Dynamips和Vmware完成CCVP试验(2)
  7. 数据库中case when condition then else end的理解
  8. VS Code 自动修改和保存 代码风格 == eslint+prettier
  9. Go Web:URLs
  10. 子组件是表格时向父组件传值