2013-10-27 73 views
2

使用PHPStorm 6/7(或WebStorm我猜),是否可以配置一個調試會話,以便它理解並使用管道在PHPStorm控制檯中有一個更方便的顯示?我正在研究利用bunyan的nodejs應用程序。我希望PHPStorm能夠很好地打印調試輸出,就像我從終端啓動應用程序那樣。可能通過另一個命令管道調試配置?

下面是一個例子配置:

examle phpstorm debug config

但它試圖運行的命令是:

/usr/local/bin/node --debug-brk=57073 app.js -vv 2>&1 "|" bunyan

如果它不會引用管道符號,它可能工作,但我不確定。

+1

考慮到你的最終目標是通過管的本仁輸出,你應該看看[班揚-prettystream(https://開頭WWW。 npmjs.com/package/bunyan-prettystream「bunyan-prettysteam」)。 – Dustin

+1

對Dustin感謝這個問題。現在我可以在Webstorm中用漂亮的日誌正確調試:) –

回答

3

我發現這個問題我也遇到了一些有趣的解決方案。我的解決方案不包括WebStorm中的任何配置更改。我只是簡單地創建了一個管道輸出,用bunyan CLI工具解析,通過節點spawn child_process加載。

的代碼看起來是這樣的:

bunyan = require('bunyan'); 
logOptions = { name: 'myApp' }; 

// Activate this logger only for development and leave the original for production 
if (process.env.NODE_ENV === 'development') { 
    spawn = require('child_process').spawn; 
    bunyanCLI = spawn('bunyan', ['--color'], { stdio: ['pipe', process.stdout] }); 
    logOptions.stream = bunyanCLI.stdin; 
} 

log = bunyan.createLogger(logOptions); 
+1

感謝您的貢獻。我使用了代碼,並且我注意到,當節點退出時,某些日誌不會打印到標準輸出,因爲被傳送到另一個進程可能會推測。我試過肖恩的模塊,它適用於這種情況。 – user2468170

2

我包裹節點添加到一個shell腳本來實現這一目標。 這是腳本:

#!/usr/bin/env bash 

node [email protected] | ./node_modules/.bin/bunyan 

你應該從來不需要修改代碼庫,以斷點調試的IDE。

要使用它,只需修改您的運行配置即可使用此腳本作爲Node interpreter

2

我發現了使用bunyan-prettystream軟件包將日誌輸入到WebStorm控制檯的更好的解決方案。

的代碼我使用看起來像這樣:

bunyan = require('bunyan'); 
logOptions = { name: 'myApp' }; 

if (process.env.NODE_ENV === 'development') { 
    var PrettyStream = require('bunyan-prettystream'); 
    var prettyStdOut = new PrettyStream(); 
    prettyStdOut.pipe(process.stdout); 
    logOptions.stream = prettyStdOut; 
} 

log = bunyan.createLogger(logOptions);