Ticket #43507

ログファイルの出力先

Date d'ouverture: 2022-01-01 16:36 Dernière mise à jour: 2022-08-12 23:32

Rapporteur:
Propriétaire:
(Aucun)
Type:
État:
Atteints
Composant:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Fixed
Fichier:
Aucun
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Détails

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/10 Histories)

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

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

2022-01-25 21:35 Updated by: nmaya
Commentaire
%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
Commentaire

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
Commentaire
  • 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
  • État Update from Ouvert to Atteints
  • Résolution Update from Aucun to Fixed
Commentaire

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

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

2022-08-12 23:32 Updated by: nmaya
Commentaire

r9709 で修正した「コマンドラインパラメータ /L= で指定したログファイル名に Tera Term の置換・strftime の変換がかからない」のは trunk 固有のものだった

  • trunk の修正履歴は不要
  • 4-stable へのマージは不要

Attachment File List

No attachments

Modifier

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