- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我刚刚实现了 Winston Logging,它按预期工作,但我遇到了一些我无法找到答案的问题。
据我所知,winston 的工作方式、设置的日志级别和使用优先级以下的任何内容,例如错误时它还将包括信息日志等。有没有办法创建特定的日志级别让将其称为 HTTP 或 db,我只将 http 或 db 事件记录到其中,它们最终不会出现在组合文件或控制台中?
最佳答案
更好的解决方案是使用具有格式功能的单个记录器作为“级别过滤器”来指定哪个传输记录哪个特定级别。这是解决方案(请注意,levelFilter
可以很容易地扩展为采用一系列可接受的级别)。
关键的见解是,如果没有 info
对象从格式化程序链返回,则不会记录任何内容。
const { createLogger, format, transports } = require('winston');
const levelFilter = (level) =>
format((info, opts) => {
if (info.level != level) { return false; }
return info;
})();
const logger = createLogger({
transports: [
new transports.Console({
format: format.combine(
levelFilter("info"),
format.json()
)
}),
new transports.File({
filename: "test.log",
format: format.combine(
levelFilter("error"),
format.json()
)
}),
]
});
// ONLY is logged to test.log
logger.log({
level: 'error',
message: 'abcd'
});
// ONLY is logged to console
logger.log({
level: 'info',
message: '1234'
});
关于node.js - Winston/Morgan 日志记录避免重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56907439/
我正在尝试使用 morgan 来记录对我的 api 服务器的请求。我的路线是这样配置的; app.use logger('dev') app.use '/api/collab/dataobje
我正在使用 morgan('dev') 进行日志记录,但我想存储此对象 "GET/users/get 200 195.315 ms - 393" [in控制台日志]到数据库中。 喜欢 - method
我正在处理一个带有 Node.js 后端的新项目,我的 morgan 记录器工作得非常好。起初,我无法使用任何预定义的 morgan 模板(tiny、short 等)从中获得任何输出,没有任何内容传播
我使用 Morgan 和 Express 为我的网站提供 REST API。我在 main.js 中以这种方式实现 morgan 记录器: app.use(morgan('dev')); //logg
是否有限制或规则来设置/定义 morgan ,以便它仍然遵循设置的颜色模式?我目前有以下 morgan 设置。 morgan.token('date', (req, res, tz) => { r
我使用 Morgan(默认快速生成器请求记录器),并且我尝试在单元测试期间禁用它。 目前我使用默认配置,在 app.js 中加载 Morgan const logger = require('morg
我正在尝试解决 this hackerrank 上的问题: 所以问题是: jack 和丹尼尔是 friend 。他们都喜欢字母,尤其是大写字母。他们正在从报纸上剪下大写字母,每个人都将自己收集的字母分
正在尝试通过应用程序运行时更改 morgan 的日志记录格式。 该值将根据数据库中的某个远程值而改变,我希望 morgan 的输出因此而改变。IE。如果在数据库中值为 1 morgan 的格式为 'd
我正在通过教程学习 nodejs。我遇到了教程适用于旧版本的问题。 我有那个代码: var express = require('express'), stylus = require('st
Morgan's documentation描述了可以拆分请求和响应的日志记录: split / dual logging The morgan middleware can be used as m
我正在使用 NodeJS 网络框架 Expressjs 和一个中间件将请求记录到一个文件 (morgan)。 我的 session : // create a write stream (in app
在一个快速教程中,作者使用了 npm 模块 morgan。 morgan 可以为 express 应用做什么?谁能帮我理解这个? 通过谷歌搜索得到了这个,但我在这里什么都不懂: var express
如何返回 morgan 组合格式字符串 async function sample(){ const res = await axios.get("http://localhost:3000/sa
我想将响应正文记录在我的日志文件中 我尝试过 morgan-body 但我想将响应记录在文件中而不是控制台中 以下代码将记录请求正文,那么有没有办法也记录响应? morgan.token('body'
根据documentation , morgan 有两个参数 - 格式字符串和选项对象。选项对象提到: immediate Write log line on request instead of r
我正在使用 morgan 记录请求和响应,一切正常。我想知道是否有任何方法可以记录错误消息?例如:如果我的应用程序中的 try catch block 失败,我将向用户返回 500 错误和自定义消息。
我正在运行一个基于 keystone.js express 的应用程序。我正在尝试集成 Morgan 日志记录,但当任何 HTTP 请求到达该站点时它都不起作用。我只是在控制台中看到正常输出。我可能做
我刚刚实现了 Winston Logging,它按预期工作,但我遇到了一些我无法找到答案的问题。 据我所知,winston 的工作方式、设置的日志级别和使用优先级以下的任何内容,例如错误时它还将包括信
我无法使用 Morgan 登录。它不会将信息记录到控制台。文档没有说明如何使用它。 我想看看变量是什么。这是 expressjs 框架的 response.js 文件中的代码: var logger
我将 Morgan 与 Express.js 一起使用,我认为我的中间件有问题,因为 Morgan 仅记录返回错误 302(重定向)的请求,这是在我的中间件捕获错误并重定向到其错误页面时发生的. 我是
我是一名优秀的程序员,十分优秀!