簡體   English   中英

node/npm - 將一些標准輸出記錄到文件,一些記錄到控制台?

[英]node/npm - logging some stdout to file, some to console?

我的package.json中有一個腳本,它運行 function 並記錄到 Z0ECD11Z4D7A287A2F14Z 文件。

package.json

"scripts": {
  "generate": "lib/utils/foo.ts > lib/utils/accounts/bar.json"
}

lib/utils/foo.ts

const runFoo = async (): Promise<void> => {
  const results = await otherFunction();
  // does a bunch of stuff
  // bunch of api calls and logging results using winston to the console

  console.log(JSON.stringify(results));
};

runFoo();

這行得通。 這很棒。 但是,它會記錄 function 運行時執行的所有標准輸出,包括我所有的 winston 日志記錄。

我想要的只是將最終的console.log記錄到bar.json文件,並將我所有的其他 winston 日志記錄打印到終端。

那可能嗎?

由於您控制標准輸出 output,您應該知道哪一行是最后一行。 當您知道它時,您可以僅將其打印到標准輸出並將其重定向到文件(類似於您所做的)或將其打印到其他 stream 並僅重定向特定的 stream。

另一種方法,將尾隨最后一行。 例如

$ echo -e "first line\nsecond line" | tail -n -1
second line

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM