Tag: logging

每个请求在Node.js中logging

我是一位经验丰富的Java开发人员,他挑选了Node.js,并将其转换为asynchronous模型。 除了日志以外,大多数情况都很好。 在使用express的Node.js中进行开发时,我无法在Java中find类似于log4j和NDC的任何内容。 我的目标是让每个日志语句自动添加以下信息: [2013-11-07 11:17:04.615 serverScript INFO 7036 192.168.7.209] 这包括时间戳,写这个语句(模块化节点应用程序)的js文件的名称,debugging级别,进程ID(正在运行的集群)以及客户端的IP地址。 我可以把它写到最初进入我的请求处理程序时,但没有传播一堆参数给每个被调用的函数,子程序内的logging器语句没有信息。 我知道我可以在每个js文件中创build一个logging器实例来初始化它的名字,但是我还没有找出客户端IP地址的解决scheme。 对于长时间运行的请求,当下一个请求进入时,我在logging器中设置的地址将被覆盖,因此logging的IP会越过。 我已经看过温斯顿,但即使是这样,也没能解决这个问题。 有没有人做到这一点? 当您可以通过IP过滤只查看一个用户的活动时,这是非常有用的跟踪字段问题。 [编辑:从parameter passing的解决scheme,直到我学习syslog的方式testing] [2013-11-07 14:29:28.641 server INFO 7527 192.168.7.209] Got request from 192.168.7.209 for /ionmed/executeQuery? [2013-11-07 14:29:28.641 router INFO 7527 192.168.7.209] About to route a request for /ionmed/executeQuery, method=POST [2013-11-07 14:29:28.642 router INFO 7527 192.168.7.209] getting POSTed data [2013-11-07 […]

Node.js类似log4j的日志系统

你能推荐一个好的类似log4j的node.js日志系统吗?

Winston的多个日志文件?

我们想用Winston来loggingNode.js. 但是,我们无法弄清楚如何拥有两个日志文件:一个用于错误,另一个用于其他所有文件。 但是,这样做的方式并不起作用:添加多个winston.transports.File传输给出错误。 其他人已经遇到了这个问题,含糊其辞的解决scheme,但没有真正的答案 。 有任何想法吗?

如果将文件可写入stream传递给Node.js中的Console构造函数,是否正在向其写入asynchronous?

我已经阅读了有关Console对象的文档和有关进程I / O的说明 ,但是不知道以下内容是否会导致同步或asynchronous操作: const out = fs.createWriteStream('./out.log') const logger = new Console(out) logger.log('foo') 我很好奇这是怎么回事,特别是在* Nix系统上。 但我不希望这在Windows上有不同的performance。 我所要问的原因是因为我已经构build了一个利用Console对象的logging器,但是我不希望logging器在生产中将日志写入文件时被阻塞。

常见的节点logging,快速应用 – 最佳实践?

我正在使用几十个模块和使用bunyan进行日志logging(JSON输出,多个可configurationstream)的node.js应用程序。 我一直在寻找如何在所有模块中实现一个实例的好例子,但是还没有看到什么似乎是我可以从中学习的一个非常干净的例子。 下面说明了一种可行的方法,但对我来说似乎相当不雅(丑陋)。 一般来说,我是新来的节点&commonjs的JavaScript,所以寻找如何改善它的build议。 模块:./lib/logger // load config file (would like this to be passed in to the constructor) nconf.file({ file: fileConfig}); var logSetting = nconf.get('log'); // instantiate the logger var Bunyan = require('bunyan'); var log = new Bunyan({ name: logSetting.name, streams : [ { stream : process.stdout, level : logSetting.stdoutLevel}, { path : logSetting.logfile, […]

我想在日志语句中显示文件名称

对于任何级别的每个logging器语句,我需要显示执行日志语句的文件名,下面是我给出的例子: 例如:下面是从JobWork.js执行的行 logger.info("getInCompleteJobs in job works"); 实际: 2012-11-05T06:07:19.158Z – info: getInCompleteJobs in job works 要求: 2012-11-05T06:07:19.158Z – info JobWork.js : getInCompleteJobs in job works 如果不从log语句中传递fileName作为参数,它应该提供文件名。

日志在Node.js中的旋转?

在我的网站分析中,我将数据logging在计划文本文件中。 我想每天轮换日志,因为它logging了太多的数据。 目前我正在使用bunyan旋转日志。 Problem facing 它正确地旋转文件,但是旋转日志文件的名字是log.0 , log.1等。我想要的文件名是log.05-08-2013 , log.04-08-2013 已知我无法编辑bunyan文件来满足我的要求。 Becoz我们正在使用package.json安装模块 所以我的问题是 在node.js中是否有其他的日志轮换符合我的要求?

如何在node.js中logging堆栈跟踪

寻找一个处理堆栈跟踪的node.js包,类似于RoR中的这种做法: Rails:loggingexception的整个堆栈跟踪

Node.js console.log性能

如果您的Node.js代码散布在console.log语句中,您是否在招惹性能问题? 这是值得debugging/生产切换此开/关? 我意识到日志logging对于生产一般很重要 – 但是我通常好奇,如果控制台输出有性能打击? 在Chrome中的客户端脚本中,如果控制台处于打开状态,它肯定会降低性能。

节点console.log默认截断输出。 我怎样才能看到完整的输出?

节点的console.log似乎默认截断了输出,例如,查看API的输出: { '@': { xmlns: 'http://ec2.amazonaws.com/doc/2012-03-01/' }, requestId: '123456', reservationSet: { item: { reservationId: 'r-123456', ownerId: '123456', groupSet: [Object], instancesSet: [Object], requesterId: '123456' } } } 正如你所看到的, [object]没有被展开。 我想这是一个方便的措施 – 很多人不希望节点喷出数千行默认情况下。 有没有办法告诉它扩大logging的项目的内容?