Tag: stderr

使用ffmpeg – nodejs区分错误和标准terminal日志

我在节点js中使用ffmpeg 。 标准的terminal输出和错误似乎被发送到标准输出,所以我不知道如何区分错误和成功…这是我的代码: var convertToMp3 = function(filePath) { var ffmpeg = child_process.spawn('ffmpeg',['-i', filePath, '-y', 'output.mp3']); var err = ''; ffmpeg.stderr .on('data', function(c) { err += c; }) .on('end', function() { console.log('stderr:', err); }); var d = ''; ffmpeg.stdout .on('data', function(c){d +=c;}) .on('end', function(){ console.log('stdout', d); }); } 如果转换成功或失败,则标准输出为空,并且标准错误包含如果我在terminal中运行相应的命令

将stdout和stderr组合成一个node.jsstream

我想将一个subprocess的stdout和stderr合并成一个单一的中间stream,然后我可以使用它并进行处理。 这是可能的标准的API? (我意识到交错两个stream有细微的差别,我需要它们只在行结束时交错才行。比如,写一行到stdout或stderr应该是一个primefaces操作)。

为什么不是永远的错误消息被logging

我目前正在运行一个bash脚本: forever -v -l log/system.log -e log/systemerr.log -w –watchIgnore '{log,data,node_modules}' app.js 我也使用log4js捕获我的应用程序的日志logging(使用以下configuration): log4js.configure({ appenders: [ //{ type: 'console' }, { type: "file", absolute: true, filename: "./log/app.log", maxLogSize: 1000000, backups: 10 } ]}); 一切似乎都在工作,因为我的应用程序的输出被输出到app.log和永远的-l输出是去system.log: warn: –minUptime not set. Defaulting to: 1000ms warn: –spinSleepTime not set. Your script will exit if it does not stay up for […]

在退出之前在Node.js进程中刷新/放弃stdout / stderr

有没有一种防火的方法来保证Node.js进程中的所有stdout和stderr在允许Node.js进程完全终止之前已经到达目的地(尽可能多)? 在某些情况下,我始终认为stdout和stderr在终止之前无法使其脱离node.js进程。 我在想的是: process.once('exit', function(){ // use some synchronous call to flush or drain stdout and stderr }); 有人发现一个绝对的方法来做到这一点? 大多数情况下,我没有看到这个问题发生,但我只是寻找任何可能的方式,我可以添加一些额外的保险。

node.js:将require()的parsing错误回显为stderr

当你试图要求一个无效的JavaScript(或JSON)文件时,node.js 10.26会正确地抛出一个错误。 我的问题是,它也输出到标准错误: borken.js – 知道要破的JavaScript文件 ,,>Z>badfile!=-csa&asd;'asdl ds]=}{ADS}DAS:LMFSV' test.js try { var borken = require('./borken'); } catch (e) {} finally { console.log('finally!'); } 预期 $ node test.js finally! 实际 $ node test.js /path/to/borken.js:1 (function (exports, require, module, __filename, __dirname) { asd;'asdl ^^^^^ finally! 前三行输出到stderr(作为node test.js 2> /dev/null运行node test.js 2> /dev/null抑制它们)。 有什么办法摆脱他们? 到目前为止,我所做的工作是:在debugging源代码的同时调整元素, LIB / module.js:439 […]

Node.JS垃圾收集事件? 或者–trace -gc到stderr?

作为一般的做法,当我编写脚本时,日志消息总是进入stderr,数据(状态消息,algorithm的结果等等)转到stdout。 我想把这个发送到stderr。 可以这样做吗? 如果有一个process.on('gc')事件,我可以使用我自己的处理程序。 有一个吗? 我现在正在写一些代码,其中stdout是为数据保留的,我别无select,只能closures–trace-gc。 我使用memoryUsage()作为第二好的东西,但它并没有告诉GC之前和之后的使用情况,它只是告诉你什么时候使用memoryUsage()碰巧被调用。

错误消息沿着exec-maven-plugin> Node.js> r.js的某处被吃掉

我们使用exec-maven-plugin在Node.js下运行RequireJS的优化器(r.js)(因为它比Rhino快很多): <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2</version> <executions> <execution> <id>compile-js</id> <phase>prepare-package</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable>${node.executable}</executable> <arguments> <argument>${project.build.directory}/dependency/requirejs/r.js</argument> <argument>-o</argument> </arguments> </configuration> </execution> </executions> </plugin> 问题是,当编译过程中出现问题时,r.js应该脱口而出的错误消息在Maven的控制台输出中不会显示。 我所要解决的问题是,我使用-X标志重新运行Maven命令以获取debugging输出,以便exec-maven-plugin输出正在执行的实际命令。 这是像这样的: project-root / target / dependency / node / node \ project-root / target / dependency / requirejs / r.js \ -o src / main / webapp / app.build.json 当我从命令行手动运行命令,然后在控制台中得到实际的编译错误,然后继续修复它们。 我已经试验了用2>&1将stderrredirect到stdout无效(在Windows上),因为我无法立即find像redirect位那样使exec-maven-plugin作为参数的方法。 […]

节点中的错误,stderr,stdout有什么区别

我正在使用node.js并想要处理错误消息。 erro,stderr,stdout有什么区别? 当脚本shell,我redirectstderr,并发现有用的错误信息,并解决了问题。 我不清楚计算机的输出是什么types的概念。 任何人都可以用全面的方式解释吗? 谢谢。

node.js child_process.spawn没有标准输出,除非“inheritance”

我试图从node.js (0.10.29)捕获spawn child_process stdout。 现在我只是试着用ping 下面的代码不打印(但是ping) var exec = require('child_process').exec; var spawn = require('child_process').spawn; var util = require('util') var ping = spawn('ping', ['127.0.0.1'], {stdio: 'pipe'}); ping.stdout.on('data', function(data){ util.print(data); }) ping.stderr.on('data', function(data){ util.print(data); }) 如果我改变stdio: 'pipe'到stdio: 'inherit'并摆脱stdout/stderr钩子如下: var ping = spawn('ping', ['127.0.0.2'], {stdio: 'inherit'}); // ping.stdout.on('data', function(data){ // util.print(data); // }) // ping.stderr.on('data', function(data){ // util.print(data); […]