Tag: winston

是否有可能在winston日志消息中使用级别值而不是名称?

我正在试图制作一个应用程序,用json格式的winston.js写入日志,与hekad一起工作。 在将winston.default.transports.console.json设置为true ,像w.info('test', {val: 123}) true调用产生: {"val":123,"level":"info","message":"test"} 问题是,根据heka文档,严重性必须是数字的,例如(对于系统日志级别)6,而不是info ,5而不是notice等等。是否可以指示winston写入级别值而不是名称到日志?

在构造函数中,将构造的对象设置为另一个

为了帮助我进行日志logging,我创build了一个便利函数,创build一个winston.Logger并将其设置为正确的传输,然后返回该logging器。 一切工作正常,但ESLint抱怨我调用它作为一个构造函数而不使用new 。 虽然我可以忽略这个警告,但是我喜欢有严格的规则,看到const logger = Logger('foo')确实令人困惑。 重命名Logger像getLogger似乎对我来说是丑陋的,但ESLint不抱怨。 我认为使Logger成为构造者,直接指向new winston.Logger的结果。 显然, this = new winston.Logger没有工作,但我很确定有一个干净的方法来做到这一点。 log.js当前片段: module.exports = (file) => { let transports = getTransports(file), logger = new (winston.Logger)({ rewriters: [ (level, msg, meta) => { meta.app = file + '.js'; return meta; } ], transports: transports }); return logger; // this = logger; }; […]

用winstonloggingmoment.js

我想在我的Node.js应用程序中包含一些包含moment.js对象的对象。 var moment = require('moment'); var myObject = { anything: 'This is metadata', moment: moment() } 当我使用console.log(myObject)这个对象logging到我的控制台时,我得到以下输出: { anything: 'This is metadata', moment: moment("2017-03-02T09:35:04.612") } 请注意,如何将moment.js对象打印为紧凑且可读的string。 现在,当我用winstonlogging这个对象的事件时… var winston = require('winston'); winston.configure({ transports: [ new (winston.transports.Console)({ prettyPrint: true }) ] }); winston.info('Test Log Message', myObject); 它在我的控制台中转储了一个巨大的对象: info: Test Log Message { anything: 'This is metadata', […]

我可以在我的nodejs服务器中的所有“.js”文件中使用winston日志loggingfunction吗?

我正在创build一个nodjs服务器。 在这台服务器中,我将使用winston日志logging。 这个服务器有一些与网页相关的.js文件,所以我需要在所有.js文件中使用winston代替console.log。

通过Winstondebuggingdebug.js输出

在我的公司,我们已经为自己的日志使用了Winston一段时间,但是处理使用debugjs的其他库的日志变得很麻烦,比如Knex.js. 我们一直在想如果有人通过Winston来pipeKnex的debugging输出,但是不能拿出任何东西。 什么是最好的方式,让一切通过温斯顿伐木者? 干杯!

使winstonlogging器variables可以访问所有文件

我正在写一个由许多节点js脚本组成的节点js工具。 为了logging,我正在使用winston。 但是我面临着一个问题。 首先,我创build了一个单独的JS文件,它具有创buildlogging器和清除logging器传输的function,它看起来如下所示: 'use strict'; var winston = require('winston'); var logger; function createLogger(service) { logger = new (winston.Logger)({ level: 'info', transports: [ new winston.transports.File( {filename: ('logs/' + service + '_error.log'), json: false}) ] }); return logger; } function clearLogger() { logger.clear() } module.exports = { createLogger: createLogger, clearLogger: clearLogger, logger: logger }; 让我们把上面的文件称为logger-handler.js。 现在,从A.js开始,我用一些服务名称来调用createLogger函数。 […]

温斯顿logging器附加“未定义”到每个日志条目

在基于node.js / express.js的应用程序中,winston日志框架(版本2.4.0)用于日志logging。 这工作正常,除了undefined附加到每个日志输出。 输出的types(string,对象,..)不会改变这种行为。 温斯顿是从这样的几个.js文件使用: const logger = require('winston') .. logger.info(`Handled request in ${Date.now() – start}ms.`); 上述日志语句的输出是: info: Handled request in 667ms.undefined 当logging器。{info | debug | ..}被replace为一个声明,以logging控制台的输出是预期的; 只是在最后连接的'undefined'被logging的语句。 可能是什么原因?

如何将winston日志path设置为项目本地文件夹

我在本地安装了winston,并指定了日志文件名:'./dataTest.log'。 var winston = require('winston'); winston.add(winston.transports.File, { filename: './dataTest.log' }); 但是,我发现日志文件坐在用户主文件夹。 (这是/用户/用户名我在Macos上)。 为什么? 我期望它坐在mynodeproject /公共文件夹。 试图将path设置为“dataTest.log”,结果相同。 编辑:这可能有更多的与节点? 那么你如何在节点中设置相对path呢?

使用debugging库loginnode.js

我目前正在使用debugging库 。 有没有一种方法可以将输出文本从debugging库保存到Winston等日志文件中。 例如…伪代码… var debug = require('debug')('test'); // debug.bind('test.log'); // <– something like this.. debug('hello world'); 所以..'你好,世界'应该在一个test.log

如何获得winston自定义传输函数内的logging器名称?

我有两个logging器: var category1 = winston.loggers.get('category1'); var category2 = winston.loggers.get('category2'); 我需要得到他们的自定义名称(或默认)。 CustomLogger.prototype.log = function (level, msg, meta, callback) { // i need logger name here! (category1 or category2 or undefined / default) } 怎样才能做到这一点? 谢谢