Tag: logging

更改不同级别的bunyan日志颜色

当使用Bunyan时,我所有的日志级别都使用相同的青色,如下所示: 这是我们正在使用的Bunyanconfiguration: const bunyan = require('bunyan'); module.exports = bunyan.createLogger({name: 'cdt-api-server'}); 我的问题是 – 我怎么能让Bunyan使用红色或洋红logging错误信息/堆栈跟踪? 问题是,红色字符的“错误”不足以引起我的注意 – 我想整个红色或红色的堆栈。 这里是Bunyan的自述文件: https : //github.com/trentm/node-bunyan 我只看到一次“颜色”。 我们可以做这样的事吗? const bunyan = require('bunyan'); module.exports = bunyan.createLogger({ name: 'cdt-api-server', streams: [ { level: 'trace', stream: process.stdout, color: 'black', }, { level: 'debug', stream: process.stdout, color: 'blue', }, { level: 'info', stream: process.stdout, color: […]

如何添加unique_id到我的快递节点日志与Winston没有重构的一切?

我有一个快速应用程序。 我想跟踪一个请求所做的所有日志。 Apache有一个名为mod_unique_id的模块,它在请求标头中注入一个特殊的包含唯一散列的标头。 我想在logging(任何事情)时使用这种散列。 例如,如果一个用户被apache赋值unique_id值“abcdefg”,并在我的代码(控制器,模型或任何东西)的某处我生成一个debugging日志,我想要有“abcdefg”附加到每个日志条目。 在我脑海中唯一的想法是使用app.use()创build一个logging器实例,并将该logging器实例传递给所有需要的函数(模型,库等)以生成正确的响应。 不幸的是,这会让我重写很多代码,让旧的函数接受这个新的logging器实例。 有没有人知道每个“请求”有一个单一的“logging器”实例更好的方式,这是可以访问,而不需要传递这个“每请求创buildlogging器”任何东西? PS:我目前正在使用winston进行login

Bunyan – 在Node.js模块中重复logging

这个日志logging重复发生在多个项目,我不知道为什么发生。 这两行logging: [2016-01-25T21:28:25.019Z] INFO: SmartConnect/11555 on CACSVML-13295.local (/Users/amills001c/WebstormProjects/lectal_all/algolia/oplog/tailing.js:19): about to start tailing… [2016-01-25T21:28:25.019Z] INFO: SmartConnect/11555 on CACSVML-13295.local (/Users/amills001c/WebstormProjects/lectal_all/algolia/oplog/tailing.js:19): about to start tailing… 但是我知道logging这一行的调用没有被调用两次。 这是发生在我的多个项目,所以我认为还有一些其他问题。 我使用Bunyan的configuration是这样的: var bunyan = require('bunyan'); module.exports = bunyan.createLogger({ name: 'Lectal-Logger', src: true, streams: [ { level: 'info', stream: process.stdout }, { level: 'error', stream: process.stderr } ] }); 上面两个重复的日志条目都是INFO级别 – 所以这不应该是stderr和stdout被发送到同一个地方(在这种情况下控制台/terminal)的情况。 […]

禁用永久运行的node.js脚本中的日志logging

我一直在使用nodejs持续运行几个服务器脚本(在不同的端口上)。 在这些服务器上有相当多的stream量。 我用于跟踪连接exception的console.log命令会导致臃肿的日志文件,我不需要所有的时间 – 仅用于debugging。 我一直在深夜手动停止脚本,截断文件,并重新启动它们。 这不会长期,所以我们决定find一个解决scheme。 我的系统上的其他人删除了我不知道的每个服务器设置的日志文件。 在命令行上永远调用列表显示服务器脚本仍在运行,但是现在我无法查看日志文件以查看节点是如何执行的。 节点停机时间应该保持在最低限度,所以我很犹豫在白天停止服务器的时间超过几分钟。 从客户端的初始testing似乎表明,脚本做的很好,但我不能100%确定没有错误,因为login到一个不存在的文件尝试失败 。 其实我有几个问题: 永久保持这样的状态可以吗? 如果没有,是否有正确的方法来禁用日志logging? github资源库似乎表明,永远仍然会login到一个默认文件,我不想要。 否则,我可能只写一个定期停止脚本的cronjob,截断日志,然后重新启动脚本。 如果我只是在脚本仍在运行的情况下触摸logfile_name.log ,再次创build日志文件,会发生什么情况 – 这是否会永远令人惊讶或者这是一个合理的解决scheme? 谢谢你的时间。

Node.js / winston – 我可以追加日志吗?

我使用winston.log来追加日志文件。 每次我重新启动我的应用程序,存在的日志被删除,并创build一个新的。 有什么办法来追加日志文件? 所以它会删除只是在旋转规则? 这是相关的代码: var winston = require('winston'); var loggerNoCache = new(winston.Logger)({ transports: [ new(winston.transports.File)({ filename: '/var/log/logNo.log', options: { highWaterMark: 32 } }) ] });

温斯顿爵士。 超过最大大小后,我的日志文件不旋转

我有以下winstonconfiguration: 'use strict' import winston from 'winston' import config from '../../config/environment' export default winston.createLogger({ level: 'info', format: winston.format.printf(info => info.message), transports: [ new winston.transports.Console(), new winston.transports.File({ filename: `${config.logsPath}/express.error.log`, maxsize: 300, level: 'error' }), new winston.transports.File({ filename: `${config.logsPath}/express.log`, maxsize: 300 })] }) 达到300字节的阈值后,这些文件都不会旋转。

如何在bunyan中设置'short'输出模式默认情况下

在bunyan的常规(原始)日志看起来如下: $ node myapp.js {"name":"myapp","hostname":"myhost","pid":34572,"level":30,"msg":"start","time":"2013-01-04T07:47:25.814Z","v":0} {"name":"myapp","hostname":"myhost","pid":34572,"widget_type":"wuzzle","level":30,"msg":"creating a wuzzle","time":"2013-01-04T07:47:25.815Z","v":0} 可以使用“短”输出模式,使用CLI,通过pipe道日志bunyan -o short $ node myapp.js | bunyan -o short 07:46:42.707Z INFO myapp: start 07:46:42.709Z INFO myapp: creating a wuzzle (widget_type=wuzzle) 是否有可能默认使用“短”模式,所以node myapp.js会产生短版本的日志?

nodejs并通过不同的模块进行日志logging

我只是对以下最好的方法感兴趣… 我有一个应用程序分为几个模块出于维护原因和问题分离。 我希望能够创build一个日志文件,当我的应用程序启动,然后使用我写的不同模块写入相同的日志文件,而不会变得凌乱,并在我的导出模块中有不必要的代码。 提前致谢。

bunyan log.child正确的用例?

我一直在看bunyanlogin我的nodejs应用程序。 我试了一下,似乎一切工作都很好。 我已经跳过了一个关于log.child 的部分 ,但现在我正在尝试了解如何使用它。 我认为这样做的目的是让我为日志条目指定一些特殊的标识符,以便我可以唯一地标识该日志如何与其他日志条目相关联。 如果是这样的话,我会设想自己在每个请求中使用log.child : var bunyan = require('bunyan'); var log = bunyan.createLogger({name: 'myapp'}); router.post('/submit', function(req, res) { var logChild = log.child({reqId: uuid.v4()}); logChild.info({ req:req }, req.user.name + ' has called /submit'); saveData(req) .then(function(data) { logChild.info({data: data}, req.user.name + ' has saved to DB successfully in /submit'); res.json({'success': 'Saved!'}); }) .error(function(err) { […]

如何logging在winston的JavaScript对象和数组作为console.log呢?

我正在查看顶级的节点日志logging系统: npmlog , log4js , bunyan和winston并决定使用winston的npm月度下载量最多。 我想要设置的是自定义logging器,我将可以在开发环境上使用logger.debug(…) ,它不会在生产环境中logging任何东西。 当我在开发环境中时,这将有助于我,因为我将看到所有的输出,所以我不需要写任何东西。 这是我现在所拥有的: var level = 'debug'; if (process.env.NODE_ENV !== 'development'){ level = 'production'; // this will never be logged! } var logger = new winston.Logger({ transports: [ // some other loggings new winston.transports.Console({ name: 'debug-console', level: level, prettyPrint: true, handleExceptions: true, json: false, colorize: true }) ], […]