自動化スクリプトを作ってエラー処理もそれなりに書いていても、GUIアプリを操作する場合、時々予期せぬことが起こります。例えばアップデートのポップアップが出たりと、普段は出てこないのに・・。
そういう時の為に、ログを常に書き出すようにしておくと、どこで止まってしまった、ここが怪しいなどを見つけることが出来るようになります。
1. _FileWriteLog()で一発です
_FileWriteLog(ログファイルパス, メッセージ,最後に追加するか先頭に追加するか)
下記で、log.logファイルの最終行に日時とこんにちは が追加されます。
第3引数はオプションで、最後に追加(-1デフォルト)、最初に追加(その他の値)です。
_FileWriteLog(@ScriptDir & "\log.log", "こんにちは") ;ログは日時 : 内容 (半角スペース、半角コロン、半角スペース) ;2020-03-02 15:01:01 : こんにちは
2. ConsoleWrite()と_FileWriteLog()を使う関数を作る
筆者はlib_logmsg.au3とかファイル作成し、logout($msg, $blog=True)とか関数作っています。
呼ぶ時にログファイルに残したくない場合はlogout(“残さない”,False)に。第2引数も$blog変数作ってそれで切り替えています。
;いつ変更しても良いが、スクリプト開始直後に変更している Global $glogpath = @ScriptDir & "\log.log" Func logout($msg, $blog=True) ConsoleWrite($msg & @CRLF) If $blog Then _FileWriteLog($glogpath, $msg) EndIf EndFunc
あとはログファイル名をセットする時に日時も勝手に追加する関数作れば、スクリプト実行時にそのログを出せますね。_NowCalc()で取得し、StringReplace()などで加工しています。
Function _NowCalc
コメント