Tag: logging

node.js文件内存泄漏?

我看到一个内存泄漏,下面的代码: while (true) { console.log("Testing."); } 我已经尝试过定义string,只是使用一个常量,但它泄漏内存,仍然: var test = "Testing."; while (true) { console.log(test); } 如果我使用文件而不是标准日志,则发生相同的泄漏: var test = "Testing."; var fh = fs.createWriteStream("test.out", {flags: "a"}); while (true) { fh.write(test); } 我想也许是因为我没有正确closures文件,但我试过这个,仍然看到了泄漏: var test = "Testing"; while (true) { var fh = fs.createWriteStream("test.out", {flags: "a"}); fh.end(test); fh.destroy(); fh = null; } 有没有人有任何提示,我应该如何写内容不漏内存?

如何在node.js中logging每个方法调用,而无需在每个地方添加debugging行?

我想logging发出请求的用户的user_id,以及为JavaScript类调用的每个方法的方法名称。 例如: 35 – log_in 35 – list_of_other_users 78 – log_in 35 – send_message_to_user 35 – connect_to_redis 78 – list_of_other_users 因为一切都是asynchronous用户35和78可能在同一时间做的东西。 所以我想确保每个日志行以user_id开头,这样我就可以grep了,而且一次只能看到一个用户的活动。 有没有一个超级聪明的方式来做到这一点,而不是每个方法都添加logging器语句?

将Bunyan应用到大型节点应用程序的推荐方法?

我正在使用多个模块的节点应用程序。 我现在正在尝试设置正确的日志logging(应该在开始时这样做),并使用Bunyan来查看。 如本答案中所build议的那样,最好有一个导出的单个logger模块,然后由其他模块需要,或者直接在每个模块中定义一个新的bunyan logger实例并相应地进行configuration? 为了重用,我想象前者,但我不知道这是否会限制前进。 如果我有一个单一的logging器定义 var bunyan = require('bunyan'); var logger = bunyan.createLogger({ name: "filter", streams: [ { level: 'info', stream: process.stdout }, { level: 'error', path: '../error.log' }, { level: 'debug', path: '../debug.log' } ] }); module.exports = logger; 然后,所有使用它的模块也将使用名称filter进行日志logging,而每个模块可能更有意义地logging到更好地表示自己的名称。 另外,我是否认为所有模块都应该将错误logging到同一个日志文件中,例如systemErr.log(以便更好的浏览),还是应该logging到自己的错误日志中,例如module1Err.log,module2Err.log?

Sails.js 0.10.x:logging到文件

我想使用内置的Sails.jslogging器并将所有内容logging到文件中。 “filePath”variables用于在config / log.js中的0.9.x中工作,但不再显示在0.10.x中工作。 此function是否已被删除 – 如果是这样,现在login到磁盘的最佳方式是什么?

温斯顿:了解伐木水平

我和Winston读了一遍,弄不明白为什么日志级别是按照它们的顺序排列的,以及为什么这些传输方式的行为方式(至less在控制台方面)。 我很感激,如果有人可以甚至彻底地用真实的用例来解释为什么用Winston进行日志logging是这样工作的? 例如,我设置我的logging器是这样的: var logger = new (winston.Logger)({ levels: winston.config.syslog.levels, colors: winston.config.syslog.colors, level: "debug", // I'm not sure what this option even does here??? transports: [ new (winston.transports.Console)({ colorize: true, handleExceptions: true, json: false, level: "debug" }) ] }); 所以,如果我做logger.debug("Test"); ,那么它会loggingdebug: Test ,罚款。 但是,如果我做logger.info("Test"); ,那么没有任何反应。 我的问题是,如果我想logging到控制台, 但除了 debug消息,我该怎么办? …甚至debug 和 info消息,但logging一切吗? 来自Java世界,使用标准的logging器,我习惯于使debug比warn更“精细”,logging器反向工作; 例如,将日志logging级别设置为info ,确实logging了所有内容但debug (或其他)。 […]

Morgan Logger + Express.js:写入文件并在控制台中显示

我试图用Express.js和Morgan一起在控制台上显示我的日志的同时写一个日志文件。 我正在使用这个代码: var logger = require('morgan'); var accessLogStream = fs.createWriteStream('./access.log', {flags: 'a'}); app.use(logger("dev",{stream: accessLogStream})); 但是这样我只能得到控制台日志,而我的access.log文件仍然是空的。 如果我这样做,而不是(指定“开发”): var logger = require('morgan'); var accessLogStream = fs.createWriteStream('./access.log', {flags: 'a'}); app.use(logger({stream: accessLogStream})); 我得到我的文件日志,但不是在控制台上。 我怎样才能获得控制台上的日志和文件? 先谢谢你! 编辑:在这一刻我已经find了这个解决scheme: app.use(logger({format:"[:date[clf]] :method :url :status :response-time ms",stream: { write: function(str) { accessLogStream.write(str); console.log(str); } }})); 但如果你有一个更好的…不客气!

如何在socket.io的中间件中获取事件详细信息

我正在尝试logging我的节点服务器上的每个事件的event name和parameter 。 为此我使用了 io.use(function(socket, next){ // how to get event name out of socket. }); 现在,我试图获取事件名称和参数时卡住了。 对我来说,它看起来像API开发的共同需求,所以我很肯定,必须有一些方法来图书馆来获取,我试图阅读文档和来源,但我无法得到的东西。

使用节点js中的log4js将日志写入文件

我的代码是: log4js.loadAppender('file'); log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese'); logger.setLevel('DEBUG'); logger.trace('Entering cheese testing'); logger.debug('Got cheese.'); logger.info('Cheese is Gouda.'); logger.warn('Cheese is quite smelly.'); logger.error('Cheese is too ripe!'); logger.fatal('Cheese was breeding ground for listeria.'); 它创build一个名为“奶酪”的文件,但里面没有任何内容。 如何写内容呢?

如何从Expresspath映射中自动生成API文档?

我在nodejs + Express中开发了一个REST API,并且在README文件中同时logging了我的API,我想知道是否可以自动化它。 例如给出: app.get('/path/to', dosomething); app.post('/path/to/:somethingelse', scream); 我希望它自动生成这个 GET: /path/to dosomething POST: /path/to/:somethingelse scream

在node.js(快速框架)中build立访问日志

我想知道是否node.js (或expression框架)有任何内置的访问日志logging像grails例如? 我有grails应用程序运行在tomcat上,它会自动生成/apache-tomcat-7.0.42/logs/localhost_access_log.2013.10.30.txt文件,其中有关于请求响应的日志如下所示: [30/Oct/2013:00:00:01 +0000] [my-ip-address] [http-bio-8080-exec-18] "GET /my-service/check HTTP/1.0" [200] [took: 1 milis] 这个日志是由系统自动编写的,我不必担心这个。 那么node.js呢? 谢谢你的帮助! 伊万