Open6

node.js を実行して console.log された内容を file に保存したい

nbstshnbstsh
nbstshnbstsh

console.log の内容だけ file に保存

stdout を保存先の file に redirect。

node my-script.js > output.log

例)

my-script.js
console.log('Hello from console.log.');
console.error('Hello from console.error.');
output.log
Hello from console.log.

terminal には以下が表示。

Hello from console.error.

console.log, console.error の内容ともに file に保存

stderr も保存先の file に redirect。

node my-script.js &> output.log

例)

my-script.js
console.log('Hello from console.log.');
console.error('Hello from console.error.');
output.log
Hello from console.log.
Hello from console.error.

terminal には何も表示されない。

nbstshnbstsh

すべて terminal にも表示させて file にも保存

node my-script.js 2>&1 | tee output.log

例)

my-script.js
console.log('Hello from console.log.');
console.error('Hello from console.error.');
output.log
Hello from console.log.
Hello from console.error.

terminal にも以下が表示される。

Hello from console.log.
Hello from console.error.
nbstshnbstsh

file 名に timestamp を乗っける

date コマンドの結果を file 名に使えばOK

node my-script.js &> output_$(date "+%s").log

output_1673600093.log のような file が保存される。

nbstshnbstsh

format にスペースを含む場合は "" で囲う

date
> 2023年 1月13日 金曜日 17時57分46秒 JST
node my-script.js &> "$(date).log"

2023年 1月13日 金曜日 17時58分30秒 JST.log という file 名で保存。