【自動売買Bot作成7】ターミナル出力をログファイルに記録する

前回のPythonコードをPowerShellスクリプトから実行して、出力結果がログファイルに記録されることを確認します。

取引所はbitFlyerで、通貨はイーサリアムとします。
背景や前提については、以下のカテゴリーページをご覧ください。

目次

注意事項

  • 本サイトで掲載されている評価や感想等は、あくまでサイト運営者の主観であり、広告主に保証されたものではありません。
  • 暗号資産(仮想通貨)取引は、元本を保証するものでなく、価格変動により損失が生じるリスクがあります。
    お取引される際には、取引内容をよく理解し、ご自身の判断で行ってください。

フォルダを作成する

いつものファイルを作成するアイコンの右にある、フォルダを作成するアイコンをクリックしてください。
私のフォルダ名は「logs」としました。

以下のような構成です。

C:\bot_bitflyer

いつものPythonファイルが置いてあるフォルダ

C:\bot_bitflyer\logs

ログファイルを格納するフォルダ

ファイルを作成する

いつものフォルダにファイルを作成してください。
私は「exe_put_log.ps1」としました。

この「.ps1」がPowerShell用の拡張子です。

サンプルコード

$today = Get-Date -Format "yyyyMMdd"
$filename = "C:\bot_bitflyer\logs\exe_put_log_" + $today + ".log"

C:\'Program Files'\Python38\python.exe -X utf8 C:\bot_bitflyer\put_log.py *>> $filename

実行結果

いつもPythonコードを実行するときと同じように実行してみてください。
上手くできていれば、先ほど作成したフォルダにログファイルが作成されているはずです。

私が2回実行した後のログファイルの内容は以下のようになっています。

------------------------------
Start Time: 2022-03-25 00:25:36
------------------------------
2022-03-25 00:25:37 板の状態は正常です。
------------------------------
End Time: 2022-03-25 00:25:37
------------------------------


------------------------------
Start Time: 2022-03-25 00:26:27
------------------------------
2022-03-25 00:26:27 板の状態は正常です。
------------------------------
End Time: 2022-03-25 00:26:27
------------------------------


サンプルコードの説明

実行日を変数に入れる

$today = Get-Date -Format "yyyyMMdd"

Get-Date」コマンドレットの出力結果を変数に入れています。
Get-Date」を普通にVSCode(Visual Studio Code)の下側にあるターミナルから実行すると、以下のようになります。

> Get-Date

2022年3月25日 0:40:41


>

コードに書いてあるもので実行すると、以下のようになります。

> Get-Date -Format "yyyyMMdd"
20220325
>

ログファイル名を変数に入れる

$filename = "C:\bot_bitflyer\logs\exe_put_log_" + $today + ".log"

先ほどの実行日を使ったファイル名を生成して、変数に入れます。
ログの格納場所は先ほど作成したファルダ、ログファイル名はお好みのものに修正してください。

ターミナルで確認してみると以下のようになります。

> $today = Get-Date -Format "yyyyMMdd"
> "C:\bot_bitflyer\logs\exe_put_log_" + $today + ".log"
C:\bot_bitflyer\logs\exe_put_log_20220325.log
>

Pythonコードを実行する

C:\'Program Files'\Python38\python.exe -X utf8 C:\bot_bitflyer\put_log.py *>> $filename

python.exe」はVSCodeでPythonコードを実行した際の、ターミナルで指定されているものを記載してください。
私だと以下のように表示されます。

> & "C:/Program Files/Python38/python.exe" c:/bot_bitflyer/put_log.py

-X utf8」は何も指定しないとログファイルの中身が文字化けするため入れています。
VSCodeの右下に「UTF-8」とあるかと思いますが、それに合わせています。

put_log.py」は前回作成したPythonファイルを指定します。

*>> $filename」は「put_log.py」の出力結果を、先ほど生成したファイル名のログファイルに書き込むという処理をします。
そのため、このPowerShellコードを実行するとVSCodeのターミナルには何も出力されずに、ログファイルに出力されるということですね。

最後に

これで作成したPowerShellスクリプトをグルグル回して実行すると、Botといえるかと思います。
次回はタスクスケジューラにタスクを登録して、このスクリプトが定期実行できることを確認しようと思います。

本シリーズの一覧ページは以下にまとめています。

それでは。

  • URLをコピーしました!

コメント

コメントする

目次