Tag: logging

Kurento在node.js中logging调用者和被调用者stream

我正在使用kurento将streamlogging到服务器磁盘。 我跟着kurento教程的变化,在这里 node.js中的教程hello-world被改变,将streamlogging到磁盘。 现在我想要做的是改变tutorial4一对一的调用来logging调用者和被调用者stream到2个文件。 当我把kurentologging下来的时候,logging器就和pipe道相连接了。 stream水线是两个对等体之间连接的表示。 我怎样才能loggingpipe道中的单个对等的stream,分别是stream的一个调用者和被调用者之一? 我尝试了很多,但找不到溶剂。

如何获得Node.js可写入stream的大小(HTTP服务器响应)

我想用普通(Access)日志格式编写一个打印HTTP访问日志的中间件。 这种格式的最后一列是响应主体的大小(以字节为单位)。 如何确定由Node.js服务器产生的HTTP响应的大小? 不起作用的示例: app.use(function(req, res, next) { var bytes = 0; res.on('data', function(chunk) { bytes += chunk.length; }); res.on('finish', function() { // `bytes` is the response size console.log(/* common log entry */); }); }); 我已经做了一些研究,例如Hapi的共同日志总是发出-作为大小。 这是否意味着无法获得大小?

如何刷新温斯顿文件logging器

如果我设置了一个控制台logging器和文件logging器,logging一些文本,然后用ctrl + c退出,控制台logging器显示所有logging的文本和文件logging器只有一些。 当进程终止时是否可以将日志刷新到文件? 我的configuration如下: winston.remove(winston.transports.Console) .add(winston.transports.Console, { colorize: true, level: 'info', timestamp: true }) .add(winston.transports.DailyRotateFile, { filename: 'mylog.log', json: false, level: 'debug', timestamp: true, maxsize: 10 * 1024 * 1024, maxFiles: 10 });

在并发系统中做上下文logging是否有一个简洁的方法?

我的具体例子是Node.js,但我认为在任何基于事件循环的系统中都存在同样的问题。 考虑以下简单的应用程序: var logger = loggingmodule.Logger(); var server = http.createServer(function(req, res) { req.id = crypto.pseudoRandomBytes(10).toString('hex'); var log = logger.transaction(req.id); loadSomeAsyncData(log, function(err, data) { if (err) return bailout(err, req, res); doSomeAsyncAction(log, req.url, data.action, function(err, result) { if (err) return bailout(err, req, res); hydrateResultWithMoreAsyncData(log, data, result, onMoreData); function onMoreData(err, moreData) { if (err) return bailout(err, req, res); […]

在bunyan多个日志path

我使用Bunyan与Restify创build一个access.log,它将存储有关端点,状态码等请求的信息…但是,我想从这个文件中分离错误并将它们存储在一个单独的日志文件。 我已经尝试通过向Bunyanlogging器实例添加额外的stream来创build第二个错误logging器,但是错误不会写入错误日志文件。 任何想法,为什么? var log = new Logger({ name: 'logga', streams: [ { stream: process.stdout, level: 'debug' }, { path: './logs/access.log', level: 'trace' }, { path: './logs/error.log', level: 'error' } ], serializers: Logger.stdSerializers }); server.on('uncaughtException', function (request, response, route, error) { log.error(error); });

减less.forever日志文件的大小而不会中断永久进程

由forever创build的日志文件( /root/.forever )已经达到了一个很大的尺寸,几乎填满了硬盘。 如果在forever进程仍在运行的情况下删除日志文件, forever logs 0将返回undefined 。 logging当前forever进程恢复的唯一方法是stop并再次start节点脚本。 有没有办法只修剪日志文件,而不中断日志或forever过程?

在node.js中有几个控制台实例

有没有一种简单的方法来在Node.js中创build几个控制台实例(窗口)来stream日志? 我想象这样的代码: var consoles = require('consoles') console1 = consoles.createConsole({name:"name1", title:"some title1"}) console1.log("Hello console 1!") console2 = consoles.createConsole({name:"name2", title:"some title2"}) console2.log("Hello console 2!") 其中创build两个控制台窗口与相应的logging。 更新:我玩不同的日志包看这个function: debugging , 日志 , 温斯顿 , bunyan 他们都解决了伐木的任务,也许我可以使用它们。 例如,我可以写winston的特定传输,或stream为bunyan ….但我的问题是 – 如何使console / tty /terminal的几个instanses /窗口,并得到他们的stdinstream?

快递摩根。 logging到内部对象

家伙。 我想使用快递中间件日志logging工具“摩根”,并希望改变一些默认行为。 正如它在文档( https://github.com/expressjs/morgan/blob/master/README.md )中所说的,它需要的一个paramateres是定义输出的“stream”。 默认情况下,它输出到节点控制台,但我们可以将其更改为login到指定的文件。 // create a write stream (in append mode) var accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'}) // setup the logger app.use(morgan('combined', {stream: accessLogStream})) 我想知道是否有机会将所有日志转发到服务器上的指定对象? 我的意思是做这样的事情: var obj = [] var foo = function(param) {obj.push(param)} app.use(morgan('combined'), {stream: foo}) 提前致谢!

NodeJS,是console.error同步像console.log?

我只是在debugging我的应用程序的时候注意到了一些东西,console.error似乎并没有在console.log中同步执行。 我想试试温斯顿,看看它是否有相同的行为,而且的确如此。 我在这里错过了什么? 不应该logging同步?

将不同的格式化程序添加到Winston传输

我需要为每个传输不同types的格式化程序。 例 logger = new (winston.Logger)({ transports: [ new (winston.transports.LogstashUDP)({ // some config here. Do noting on formatting }), new (winston.transports.Mail)({ // do formatting one way }), new (winston.transports.File)({ // write to file as json (maybe format it here) }), new (winston.transports.Console)({ // do another formatting }) ] }); 正如我从winston传输文档只能看到控制台支持自定义格式化程序。 我使用winston-logstash-upd winston-mailer模块来发送邮件和winston-logstash-upd 温斯顿有什么办法解决这个问题吗? 或者,也许如何创build这些模块之一的包装来支持格式?