Tag: logging

node.js多进程日志logging

我现在正在基于群集的node.js项目。 我被卡住了日志。 经过一番研究,我找出了一个解决scheme。 就这个。 我不知道这是不是一个好主意。 这个想法是这样的。 只有主进程可以写入日志文件,如果当前进程是一个工作者,那么它会向主进程发送日志消息,然后写入日志文件,而主进程可以直接写入日志文件。 这可以避免多个进程打开并写入同一个文件。 var util = require('util'); var fs = require('fs'); var cluster = require('cluster'); var logger = module.exports; var levels = ['debug', 'info', 'warn', 'error', 'fatal']; var logLevel = 'debug'; var logfile = null; var errorLogfile = null; if(cluster.isMaster){ logfile = fs.createWriteStream('debug.log', {flags:'a'}); errorLogfile = fs.createWriteStream('error.log', {flags:'a'}); cluster.on('online', function(worker){ […]

错误:ENHANENT与Bunyan旋转文件logging(NodeJS)

我正在使用Bunyan模块进行NodeJS日志logging。 当我尝试使用旋转文件types时,它会使我的应用程序每次崩溃,并输出此错误: 错误:ENOENT,重命名“logs / info.log.3” 然而,它从来没有发生在同一时间,所以我无法find任何逻辑…这是我如何instanciate我的logging器: var log = Bunyan.createLogger(config.log.config); log.info('App started, ' + process.env.NODE_ENV); 这里是我的config.json: { "name" : "app", "streams" : [ { "type" : "rotating-file", "period": "5000ms", //Low period is for testing purposes "count" : 12, "level" : "info", "path" : "logs/info.log" }, { "type" : "rotating-file", "period": "5000ms", "count" : 12, "level" […]

在温斯顿有没有相当于log.IsDebugEnabled?

在温斯顿有没有相当于log.IsDebugEnabled ? 我想用这个在生产环境中跳过昂贵的日志代码,但是在开发中执行它。 例如: if(winston.isDebugEnabled){ // Call to expensive dump routine here dump(); } 检查winston.debug只是检查方法是否已定义,而不检查是否已启用。 非常感谢! 编辑:添加代码示例。

AWS Elastic Beanstalk NodeJS和日志

我想将我的NodeJS项目从单个EC2迁移到ElasticBeanstalk。 在我当前的代码中,我使用依赖log4js在文件系统上创build一个日志文件。 在EC2这个作品创build,但是什么是ElasticBeanstalklogging的东西最好的方法? 如果我从ElasticBeanstalk下载生成的日志,我的log4js自定义日志文件不存在。 最好的祝福

如何用log4j或winston编写大量的日志? 内存不足

loggingNodeJS 作为nodejs的开端,我写了如下的testing代码。 但内存越来越大,有时甚至没有输出(通过多种方式改变它)。 有2个着名的日志模块, log4js和winston 。 以log4js为例。 1. main.js (function(){ "use strict"; let log4js = require("./log4js-config.js"); let logger = log4js.getLogger("log4js_main"); for(let i = 0; i < 10000000 ; i++){ logger.log("info", "info message " + i + "."); } })(); 2. log4js-config.js module.exports = (function(){ "use strict"; let Log4js = require("log4js"); Log4js.configure( { "appenders" : [ […]

如何logging和跟踪NodeJS事件和事件处理程序的调用?

当事件处理程序获得注册时,有没有办法logging所有其他注册的事件处理程序? 还有什么办法可以logging所有发出的事件,以及在运行时发生事件时触发的处理函数的名字吗? 如果nodejs应用程序触发链式事件(一个事件触发另一个事件),并且每个事件都有多个处理程序,则当event-handler-chain的叶子发生exception时,stacktrace不会显示上下文的完整信息。 事件日志和处理程序信息在这种情况下非常有用。 一个hackey解决scheme是添加(条件)日志logging到https://github.com/joyent/node/blob/master/lib/events.js,但我相信肯定有一个更好的方法。

winston.js info方法不传递元数据

当我通过winston传递元数据时,快捷方式winston.info方法不会传递元数据。 var winston = require('winston'); winston.info("winston with metadata", {cluster: "bar"}); winston.log("info", "winston with metadata", {cluster: "baz"}); OUTPUT: info: winston with metadata info: winston with metadata cluster=baz 我希望这两个调用打印出元数据? 通过winston代码挖掘,它看起来像dynamic生成每个级别的快捷function('信息','debugging','错误'),并尝试处理额外的元数据参数: // // ### function setLevels (target, past, current) // #### @target {Object} Object on which to set levels. // #### @past {Object} Previous levels set on target. […]

在Node.js Express日志文件中发现奇怪的http请求

我的第一个基于Node.js的公共网站(和Express)在几周前就已经公开发表了。 我经常检查服务器日志,有时还有一些奇怪的logging。 这里有些例子: – – – [Sat, 19 Oct 2013 08:44:38 GMT] "GET http://www.google.com/ HTTP/1.0" 200 3539 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 222.205.7.245 – – [Sat, 19 Oct 2013 19:54:57 GMT] "GET http://www.wikipedia.org/ HTTP/1.1" 200 3539 "-" "Mozilla/5.0 (compatible; MSIE 5.01; Win2000)" 223.94.178.192 – – [Sun, 20 Oct 2013 06:04:23 GMT] "GET […]

在Node.js中logging文件:集群安全吗?

如果我在运行此代码的一个盒子上有4个,8个或更多的线程和群集,是否会在日志文件/文件编写器上存在资源争用? 如果是这样,你可以发表一个例子说明? 到目前为止,我所做的所有testing似乎都表明写入的数据不会交织在一起,不会被扔掉,但我并不是完全相信 谢谢! var errLog = fs.createWriteStream(… + '/error.log'); GLOBAL.dbLog = fs.createWriteStream(… + '/db.log');

温斯顿logging器文件名错误未定义

我是新的节点js和试图winstonlogging器为我的项目,一切工作正常,但是当我试图创build我自己的logging器对象,并将日志传输到文件名我得到的错误为: TypeError:无法读取属性“文件名”未定义我觉得我做了什么愚蠢的事情,因为当我只是试图写日志文件使用Winston的默认对象的作品,我张贴我的代码与错误的快照。 我创build了简单的快速js项目,并在app.js中logging日志代码,如下所示: /** * Module dependencies. */ var express = require('express'), routes = require('./routes'), user = require('./routes/user'), http = require('http'), path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' == […]