フリーズしてしまったときの対処がうまくいかなかった原因が判明。
前回フリーズして終了したかをログファイルに書き込まれた時刻の文字列の文字数によって判定していたのだが、これが間違っていた。
ツールを作るときは大抵深夜の午前中。そして今までマシンがフリーズしてしまったときは午後。午前なら1時、2時などで時間は1桁。午後なら12時過ぎているので時間は2桁。午前の時に文字数を数えて、それを判定基準にしていたので、午後には動くわけがない。
出力する時間の文字列を01時のように常に2桁にするように対処。
まさか、原因が起動する時間の違いによるとはなぁ。あんまり日付や時間に関するプログラムって書いたことが無かったから、なかなか気付かなかった。