Ticket #43507

ログファイルの出力先

Open Date: 2022-01-01 16:36 Last Update: 2022-02-01 23:12

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

Program Files 配下など、UACが有効なフォルダで実行してログが出力された場合、VirtualStoreフォルダに出力される。プログラムと同じフォルダにログを出力しているため。

#36575 の「設定ファイル」のチケットに書いておいたが、設定ファイルのほうは trunk でおおむね対応されたようなのでチケットを分ける。

%LOCALAPPDATA%\teraterm5 (%USERPROFILE%\AppData\Local\teraterm5)
設定ファイルは %APPDATA%\teraterm5 (%USERPROFILE%\AppData\Roaming\teraterm5)

ログファイルの種類:

  • B-Plus, Kermit, Quick-VAN, Telnet, Xmodem, Ymodem, Zmodem
  • teraterm.log(フルパスではなく、相対パスとして解釈する場合)
  • TTSSH
  • broadcast.log の拡張子は log だが、ファイル形式は INI で実行したコマンドの履歴を記録しているので、%APPDATA%\teraterm5 のほうが適していると思われる。r9707 時点でそのように実装されており、変更しなくてよい。

ダンプファイルの種類:

  • Tera Term: ExceptionFilter()
  • TTSSH: save_memdump()

Ticket History (3/9 Histories)

2022-01-01 16:36 Updated by: nmaya
  • New Ticket "ログファイルの出力先" created
2022-01-03 14:26 Updated by: nmaya
Comment

ssh_known_hosts が Roaming に保存されるのと同じ仕組みで実現できるのでしょうか?

2022-01-25 21:35 Updated by: nmaya
Comment
%LOCALAPPDATA%\teraterm5 (%USERPROFILE%\AppData\Local\teraterm5)
設定ファイルは %APPDATA%\teraterm5 (%USERPROFILE%\AppData\Roaming\teraterm5)
  • LogDirW (BPLUS.LOG, KERMIT.LOG, QUICKVAN.LOG, XMODEM.LOG, YMODEM.LOG, ZMODEM.LOG, TELNET.LOG) ... r9466
  • TTSSH.LOG ... r9707
(Edited, 2022-01-29 08:49 Updated by: nmaya)
2022-01-29 12:17 Updated by: nmaya
  • Details Updated
2022-01-29 12:21 Updated by: nmaya
  • Details Updated
2022-01-29 14:01 Updated by: nmaya
Comment

tearterm.log がフルパスでない場合

CVTWindow::OnCommOpen() の動作は以下のとおり。

コマンドラインでフルパスでないログファイル名を指定した場合(例: /L=hoge.log)

ログファイル名はフルパス化されずに使われる。

StartTeraTerm() で SetCurrentDirectoryW(ts->HomeDirW); されているので、ログファイルは個人設定ファイルのフォルダに作成される。

SetCurrentDirectoryW(ts->HomeDirW); の是非は分からないが、「LogDefaultPath, LogDir の順でフルパス化する」に変更してはどうか。

引数で渡したファイル名に ParseStrftimeFileName()・ConvertLogname() がかかっていない。

LogAutoStart が on の場合

デフォルトのログファイル名は "teraterm.log" (フルパスではない)

FLogGetLogFilename の中でフルパス化・ParseStrftimeFileName()・ConvertLogname() がかかる。

  • LogDefaultPath があれば使われる
    • デフォルトは ""
  • FileDir があれば使われる
    • デフォルトは、インストーラにより「インストール先ディレクトリ」
  • HomeDir(個人設定ファイルのフォルダ)

現在の動作になったのはここから。元々は FileDir を使うようになっていた。

たいてい FileDir が設定されているので、「インストール先ディレクトリ」になるか、ユーザが自分で選択したダウンロードフォルダになることが多そう。

「LogDefaultPath, FileDir, HomeDir の順でフルパス化する」ではなく、「LogDefaultPath, LogDir の順でフルパス化する」に変更してはどうか。

cf. ttssh2-dev 207

変更のコミット: r9709

ファイル名変換だけは 4-stable に入れてもいいかもしれない

(Edited, 2022-01-30 23:08 Updated by: nmaya)
2022-01-30 23:16 Updated by: nmaya
  • Details Updated
Comment
  • LogDirW (BPLUS.LOG, KERMIT.LOG, QUICKVAN.LOG, XMODEM.LOG, YMODEM.LOG, ZMODEM.LOG, TELNET.LOG) ... r9466
  • TTSSH.LOG ... r9707
  • teraterm.log ... r9709, r9714
  • Tera Term: ExceptionFilter(), CreateDumpFilename(), DumpMiniDump() ... r9715
  • TTSSH: save_memdump() ... r9715
(Edited, 2022-02-01 22:53 Updated by: nmaya)
2022-02-01 23:12 Updated by: nmaya
  • Status Update from Open to Closed
  • Resolution Update from None to Fixed
Comment

おそらくすべて対応したと思うので close する。

ほかにログファイルがあったら再度 open してください。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login