如何将 winston log 库记录的日志写入 mongo DB 数据库
官网
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 数据库相关推荐
- winston log 库如何创建 custom logger
代码: const { createLogger, format, transports, config } = require('winston');const usersLogger = crea ...
- es获取最大时间的记录_Python日志写入ES之五种方案比较
实时/准实时方案可以使用以下四种方式实现: flume+kafka+spark准实时写入ES logging + CMRESHandler实时写入ES 利用python中的Elasticsearch ...
- 利用winston和morgan记录express日志信息
最近忙着做毕业设计,项目是一个多用户博客程序.后端技术栈为express+mongodb,为了能够更为详细的记录程序运行日志,便开始研究如何使用winston和morgan.项目代码已托管到GitHu ...
- 自动清理归档日志_LGWR 日志写入进程
为了实现为多用户提供服务且保证系统性能,在一个多进程Oracle 系统(multiprocess Oracle system)中,存在多个被称为后台进程(background process)的Ora ...
- boost::log模块实现将日志记录初始化到远程 syslog 服务器
boost::log模块实现将日志记录初始化到远程 syslog 服务器 实现功能 C++实现代码 实现功能 boost::log模块实现将日志记录初始化到远程 syslog 服务器 C++实现代码 ...
- slf4j注解log报错_SpringBoot自定义日志注解,用于数据库记录操作日志,你用过吗?...
大家好,我是程序员7歌! 今天我将为大家讲解如何通过自定义注解记录接口访问日志.一般的开发中,有两种方式可以记录日志信息,第一种:把接口日志信息保存到日志文件中,第二种:把接口操作日志保存到数据库中, ...
- 如何禁用请求库中的日志消息?
本文翻译自:How do I disable log messages from the Requests library? By default, the Requests python libra ...
- iOS一个灵活可扩展的开源Log库
目前大部分iOS的小型开发团队都不是很重视log,导致很多线上发生的或者用户反馈的bug难以排查.对于App来说一个好的日志系统可以帮助我们用最小的代价来排查一些疑难bug,我们唯一要做的就是在合适的 ...
- Python + logging 输出到屏幕,将log日志写入文件(亲测)
日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数 ...
最新文章
- 12、OpenCV实现图像的空间滤波——图像平滑
- cap = cv2.VideoCapture(0).read()摄像头读取图片用法
- Android 聊天软件客户端
- RTSP流媒体数据传输的两种方式(TCP和UDP)
- python调用dll函数_从Python调用DLL函数
- c语言中缺少link文件夹,c – Cmake找不到使用“link_directories”的库
- 逻辑回归(logistic regression)的本质——极大似然估计
- 字体大小 js 控制
- bzoj 3156: 防御准备
- Flex 弹性布局(****************************************************)
- baum welch java_Baum Welch估计HMM参数实例
- 推导余弦距离和欧式距离的关系
- 【Android】spinner下拉框样式修改
- 人体的神经系统图 分布,人的神经系统分布图
- su的2019面试准备
- 硬件知识:视频分配器、画面分割器、矩阵、延长器相关知识介绍
- 解决克隆RHEL7后网络无法启动问题
- php静态页面制作,ps制作静态的html页面
- 字节跳动bytedance西瓜视频播放器研究
- 操作系统 (二): 进程与线程