Tag: winston

如何从特定的date限制后从Winston日志中删除文件?

我正在使用Winston的日志文件到服务器正在按预期工作,现在我想设置天限制,让我说3天后,我想删除3天前logging的文件,是否有可能实现使用Winston的旋转? main.js winston.add(winston.transports.File, { filename: './Logs/server.log', maxsize:'15000', timestamp:false });

logging器不会根据需要保存所有日志信息 – 节点jsasynchronous

我有一个伟大的winstonlogging器: var systemLogger = new (winston.Logger)({ transports: [ new (winston.transports.Console)({ timestamp: function () { return moment().format('D/MM/YYYY HH:mm:ss:SSS') }, colorize: true }), new (require('winston-daily-rotate-file'))({ filename: 'logs/-system.log', datePattern: 'dd-MM-yyyy', prepend: true, json: false, timestamp: function () { return moment().format('D/MM/YYYY HH:mm:ss:SSS') }, formatter: formatter }) ] }) 我在我的程序中调用这个logging器: var systemLogger = require('./logging.js') var asyncTasks = [] asyncTasks.push(function(callback) { […]

在使用process.exit() – 节点js时,Winston日志文件并不总是保存

我无法理解这个概念…在将日志文件保存到控制台和实际文件的程序上使用process.exit()时,日志事件全部打印在控制台中,但只有第一个(或者没有全部)保存到文件中。 这是一个问题的快速演示: 在下面的代码中,winstonlogging器是创build。 然后在numberScore函数中,为数组中的每个数字创build一个日志,最后我并行logging所有事件 – 只是一个演示! var async = require('async') var winston = require('winston') var moment = require('moment') var logger = new (winston.Logger)({ transports: [ new (winston.transports.Console)({ timestamp: function () { return moment().format('D/MM/YYYY HH:mm:ss:SSS') }, colorize: true }), new (require('winston-daily-rotate-file'))({ filename: 'logs/-system.log', datePattern: 'dd-MM-yyyy', prepend: true, json: false, timestamp: function () { return moment().format('D/MM/YYYY HH:mm:ss:SSS') […]

Winston如何将日志发送到不同的传输?

我在系统中发生了不同的事件,并希望将其中的一些logging到一个文件中,另一些logging到另一个文件中。 例如: 像'start','stop'这样的服务器事件会转到'serverLogger'传输的'server.log'。 用户事件'login','注销','注册'将被放在与UsersLogger'users.log' 付款事件,如“已付款”,“已拒绝”将在PaymentsLogger的“payments.log”中。 在系统中,我会运行它,如: logger.log(ServerLogger, 'start'); logger.log(UsersLogger, 'login','john'); logger.log(PaymentsLogger, 'paid','100', 'john'); 我如何使它像这样工作,以便当我想login到某个特定的logging器,它会被使用? 我是否应该将每个logging器注册为这样的新的winston实例? const serverLogger = new winston.Logger() const usersLogger = new winston.Logger() const paymentsLogger = new winston.Logger()

如何将JSONlogging到控制台并让cloudwatch日志选取正确的元数据?

winston.info('Hello again distributed logs', { app: 'test', sid: 1 }) pino.info('Hello again distributed logs', { app: 'test', sid: 1 }) 输出: {"app":"test","sid":1,"level":"info","message":"Hello again distributed logs","timestamp":"2017-02-16T03:34:06.186Z"} {"pid":4269,"hostname":"Macchiato.local","level":30,"time":1487216046197,"msg":"Hello again distributed logs {\"app\":\"test\",\"sid\":1}","v":1} 我已经fluentd守护进程拾取容器stdout并将其发送到cloudwatch。 在上面的例子中,cloudwatchlogs可以从pino中正确地检测到元数据,我将能够像这样查询日志 {$.app = "test"} 然而,winston控制台不是这样工作,一切都推到log属性。 有谁知道如何解决这一问题。 我用json: true使用winston控制台json: true和stringify: true

使用winstonloggingnodejs微服务应用程序

我写了一个服务器端应用程序,这个应用程序被分成了几个微服务,所有这些服务现在都写在nodejs中。 我使用Winston作为我的日志库。 我也用麋鹿来监视我的日志。 最近,我发现我无法舒适地监视我的日志,而且我需要一种方法在我的微服务中一路查看kibana的请求。 我的意思是,我想查看所有来自请求进入第一个微服务的日志,直到她从最后一个微服务发回来。 我没有唯一的ID给我的请求或发送的实体,所以我需要为每个请求生成新的唯一ID。 但我不想将生成的ID添加到我的应用程序中的每个方法。 有一个优雅的解决scheme来做到这一点,而不改变我所有的日志? 非常感谢。

如何为复杂的应用程序设置winstonlogging器?

如何在nodejs eco中获得类似log4j的logging器系统? 正如我们所看到的, winston是nodejs中最大的logging器框架。 但是我们无法得到准确的结果。 你能分享你最好的练习logging器子系统吗? 如果我们得到类似log4j的logging器用例,这将是理想的: main.js // configuring loggers "Class A", "Class B", "Class C" ClassA.js // get fully configured logger "Class A" from factory. Have not any logger configuration inside class // use logger ClassB.js // get fully configured logger "Class B" from factory. Have not any logger configuration inside class // […]

如何从控制台创build一个传输?

目前我有这样的代码: const logger = new winston.Logger(); logger.add(winston.transports.Console, { level: environment === 'development' ? 'silly' : 'info', colorize: true, prettyPrint: true }); 但我希望能写 const logger = new winston.Logger({transports: [customConsoleTransport]}); 我如何创buildcustomConsoleTransport ?

查询winston日志返回空结果

我有一个非常基本的快递应用程序。 我没有任何configuration添加winston 。 我创build这样的日志消息: require('winston').info('App started'); 所有的日志消息进入app.out.log 。 当我进入我看到的文件 info: App started 所以使用Winston的默认日志似乎工作正常。 现在我想使用Winston的查询api: require('winston').query({}, function(err, results) { if (err) { res.status(400).json(err); } else { res.json(results); } }); 但结果是空的。 该文件说: Winston支持使用类似Loggly的选项来查询日志。 请参阅Loggly Search API。 具体来说:File,Couchdb,Redis,Loggly,Nssocket和Http。 因为默认的传输是文件我希望结果不是空的。 任何想法什么是错的?

温斯顿:如何login到控制台和Syslog同时运输?

我爱温斯顿 ,并在我的所有项目中使用它。 现在我需要在我的一个应用程序中login到系统日志服务器。 我想,“没问题,温斯顿有这样的交通工具 ,很简单!” 但是我发现了一个问题。 npm(控制台)和syslog之间的日志级别不兼容。 例: 在我的应用程序中,我已经configuration了我的日志(大部分) // To use syslog stuff. Commented out for the initial example //winston.setLevels(winston.config.syslog.levels); // Console logging should have timestamps which are off by default winston.remove(winston.transports.Console); winston.add(winston.transports.Console, {timestamp: true}); // Add my syslog transport winston.add( winston.transports.Syslog, { level: 'info', host: config.app.syslog.host, facility: config.app.syslog.facility, json: false } )); 在这一点上,就我的控制台日志logging而言,一切都很好。 […]