Dockerで動かしたRailsのログをWindowsのVSCodeで見る方法

Railsのログは (プロジェクト)/log/ ディレクトリに保存されますが、その log/development.log をVSCodeのターミナルで開いて確認する方法のご紹介です。

WindowsではGet-Contentコマンドが tail コマンドの代用になる

元々、Linuxのtailコマンドに馴染みがあったため、Dockerで起動したLinuxのCLIを開いてその中で tail -f log/development.log コマンドを実行していました。この手順を少し改善したく調べたところ、Get-Content コマンドがtailコマンドとして使えることが分かりました。

tail のようにログを出力する基本的なコマンドは次になります。

get-content log/development.log -wait -tail 1

Get-Content のエイリアスとして cat が用意されているので次のコマンドでも大丈夫です。

cat log/development.log -wait -tail 1

オプションの説明

get-content (cat) コマンドのオプションで -wait と -tail (num) を渡す部分がポイントです。

-wait ・・・ 対象ファイルを監視する

-tail (num) ・・・ ファイルの末尾 num 行を出力する。

Get-Contentのドキュメント にもう少し詳しく書いてあります

上記の例では num = 1 としましたが、監視しているファイルに追記されたものは全て表示されますので適当な数字で大丈夫です。

VSCodeのターミナルで実行する

それでは、Dockerで実行しているRailsプロジェクトのソースコードを、VSCodeで開きましょう。次のコマンドでVSCode内にターミナルを開けます。(メニューから開いてもOK)

Ctrl + Shift + @

ターミナルにログファイルの監視コマンドを入力して実行!

> cat log/development.log -wait -tail 1

これで、Railsのwebページを開くたびにログが流れるようになります。

↓成功した例