ログファイルの出力先
ssh_known_hosts が Roaming に保存されるのと同じ仕組みで実現できるのでしょうか?
CVTWindow::OnCommOpen() の動作は以下のとおり。
ログファイル名はフルパス化されずに使われる。
StartTeraTerm() で SetCurrentDirectoryW(ts->HomeDirW); されているので、ログファイルは個人設定ファイルのフォルダに作成される。
SetCurrentDirectoryW(ts->HomeDirW); の是非は分からないが、「LogDefaultPath, LogDir の順でフルパス化する」に変更してはどうか。
引数で渡したファイル名に ParseStrftimeFileName()・ConvertLogname() がかかっていない。
デフォルトのログファイル名は "teraterm.log" (フルパスではない)
FLogGetLogFilename の中でフルパス化・ParseStrftimeFileName()・ConvertLogname() がかかる。
現在の動作になったのはここから。元々は FileDir を使うようになっていた。
たいてい FileDir が設定されているので、「インストール先ディレクトリ」になるか、ユーザが自分で選択したダウンロードフォルダになることが多そう。
「LogDefaultPath, FileDir, HomeDir の順でフルパス化する」ではなく、「LogDefaultPath, LogDir の順でフルパス化する」に変更してはどうか。
cf. ttssh2-dev 207
変更のコミット: r9709
ファイル名変換だけは 4-stable に入れてもいいかもしれない
おそらくすべて対応したと思うので close する。
ほかにログファイルがあったら再度 open してください。
r9709 で修正した「コマンドラインパラメータ /L= で指定したログファイル名に Tera Term の置換・strftime の変換がかからない」のは trunk 固有のものだった
Program Files 配下など、UACが有効なフォルダで実行してログが出力された場合、VirtualStoreフォルダに出力される。プログラムと同じフォルダにログを出力しているため。
#36575 の「設定ファイル」のチケットに書いておいたが、設定ファイルのほうは trunk でおおむね対応されたようなのでチケットを分ける。
ログファイルの種類:
ダンプファイルの種類: