logopen
2024/09/01 15:34
logopen 機能
[通信コマンド]Tera Term のログを開始します。
コマンドライン
logopen <file name> <binary flag> <append flag> [<plain text flag> [<timestamp flag> [<hide dialog flag> [<include screen buffer flag> [<timestamp type>]]]]]
機能説明
指定されたパラメータに応じて Tera Term のログを開始します。すべてのバージョンで対応部分
<file name>
<file name> は、ログを取得するファイル名を指定します。省略できません。
ファイル <file name> に、受信した文字が書き込まれます。
ログ取得を開始したあとはバックグラウンドで動作し、次に記述したコマンドへ処理が移動します。
ファイル名に \ を含まない場合、Tera Termのカレントディレクトリに作成されます。
当該ディレクトリを変更するには 044 コマンドを使用してください。
また、バージョン 4.45以降は、ファイル名に strftime のフォーマットを利用できる機能の追加されました。
マクロでも、ログ名に strftime フォーマットが指定可能です。
書式 | 意味 |
---|---|
&h | ホスト名。未接続の場合は空。 |
&p | TCP ポート番号。未接続の場合は空。TCP 接続でないときも空。 |
&u | ログオン中のユーザ名。 |
%a | 曜日の省略形。 |
%A | 曜日の正式名。 |
%b | 月の省略形。 |
%B | 月の正式名。 |
%c | ロケールに対応する日付と時刻の表現。 |
%d | 10 進数で表す月の日付 (01 ~ 31)。 |
%H | 24 時間表記の時間 (00 ~ 23)。 |
%I | 12 時間表記の時間 (01 ~ 12)。 |
%j | 10 進数で表す年初からの日数 (001 ~ 366)。 |
%m | 10 進数で表す月 (01 ~ 12)。 |
%M | 10 進数で表す分 (00 ~ 59)。 |
%p | 現在のロケールの午前/午後。 |
%S | 10 進数で表す秒 (00 ~ 59)。 |
%U | 10 進数で表す週の通し番号。日曜日を週の最初の日とする (00 ~ 53)。 |
%w | 10 進数で表す曜日 (0 ~ 6、日曜日が 0)。 |
%W | 10 進数で表す週の通し番号。月曜日を週の最初の日とする (00 ~ 53)。 |
%x | 現在のロケールの日付表現。 |
%X | 現在のロケールの時刻表現。 |
%y | 10 進数で表す西暦の下 2 桁 (00 ~ 99)。 |
%Y | 10 進数で表す 4 桁の西暦。 |
%z, %Z | レジストリの設定に応じて、タイム ゾーンの名前または省略形を指定します。 タイム ゾーンが不明な場合は指定しません。 |
%% | パーセント記号。 |
バージョン 4.55 で、ログファイル名に strftime のフォーマットを指定したときに展開されない問題の修正が入っています。
<binary flag>
<binary flag> は、ログのタイプを指定します。省略できません。
指定するパラメータは以下の通りです。
<binary flag> | モード | 挙動の説明 |
---|---|---|
0 | Text | 受信した漢字、改行文字は変換されてファイルに書き込まれ、エスケープシーケンスは書き込みません。 |
1 | Binary | 受信した文字をすべてそのままファイルに書き込みます。 |
<append flag>
<append flag> は、上書きか追記かを指定します。省略できません。
指定するパラメータは以下の通りです。
<append flag> | ファイルの有無 | 挙動の説明 |
---|---|---|
0 | 既存あり | そのファイルに対して上書きします。 |
既存なし | 新規でファイルを作成します | |
1 | 既存あり | そのファイルに追加して書き込みます。 |
既存なし | 新規でファイルを作成します |
バージョン 4.61以降 (ログ再生可能なバイナリオプションの追加)
<binary flag> が 1 (0 以外)の場合、<plain text flag> および <timestamp flag> は両方とも無視されます。<plain text flag>
指定するパラメータは以下の通りです。<plain text flag> | 挙動の説明 |
---|---|
0 | ASCII 制御文字を書き込みます。 省略時は、こちらが指定されたものとして処理されます |
1 | ASCII 非表示文字をログに書き込みません。 |
<timestamp flag>
指定するパラメータは以下の通りです。<timestamp flag> | 挙動の説明 |
---|---|
0 | 特に追加処理を行いません。 省略時は、こちらが指定されたものとして処理されます |
1 | ログの行頭に時刻を追加します。 |
バージョン 4.62以降 (ログを開けたかどうか result を返す仕様の追加)
ログファイルを開けた場合、result に 0 が格納されます。開けなかった場合は 1 が格納されます。
バージョン 4.80以降 (端末バッファをログへ含めるオプションの追加)
<hide dialog flag>
指定するパラメータは以下の通りです。<hide dialog flag> | 挙動の説明 |
---|---|
0 | ログ転送のダイアログを表示します。 省略時は、こちらが指定されたものとして処理されます |
1 | ログ転送のダイアログを表示しません。 |
<include screen buffer flag>
指定するパラメータは以下の通りです。<include screen buffer flag> | 挙動の説明 |
---|---|
0 | 特に追加処理を行いません。 省略時は、こちらが指定されたものとして処理されます |
1 | 現在の端末バッファすべてを先にファイルに書き込みます。 |
バージョン 4.97以降 (ログ行頭へタイムスタンプを追記するオプションの追加)
<timestamp type> は timestamp の形式を指定します。以下の値が指定出来ます。
指定するパラメータは以下の通りです。
<timestamp type> | 出力情報 | 挙動の説明 |
---|---|---|
0 | ローカルタイム | 端末の現在時刻を、ロケーションに応じて利用します。日本なら JST です。 省略時は、こちらが指定されたものとして処理されます |
1 | UTC | 端末の現在時刻を UTC に変換して利用します。 |
2 | 経過時間(Logging) | ログ取得開始時点からの経過時間を利用します。 |
3 | 経過時間(Connection) | 接続開始時点からの経過時間を利用します。 |
パラメータの説明
指定するパラメータは以下の通りです。パラメータ | 型 | パラメータ説明 |
---|---|---|
<file name> | 文字列 | ログを書き込むファイル名を指定する。 |
<binary flag> | 整数 | ログのタイプ(バイナリかASCIIか)を指定する。 |
<append flag> | 整数 | 既存ログの扱い(追記か上書きか)を指定する。 |
<plain text flag> | 整数 | ASCII 制御文字を書き込むかどうかを指定する。 |
<timestamp flag> | 整数 | タイムスタンプの有無(追記するか)を指定する。 |
<hide dialog flag> | 整数 | ログ転送のダイアログを表示するかどうかを指定する。 |
<include screen buffer flag> | 整数 | ログ取得時にバッファ内の情報も含むかどうかを指定する。 |
<timestamp type> | 整数 | タイムスタンプを追記する場合、その形式を指定する。 |
対象バージョン
一部機能は、全てのバージョンで利用可能です。バージョン 4.45 より追加された機能があります。
バージョン 4.61 より強化された機能があります。
バージョン 4.62 より強化された機能があります。
バージョン 4.80 より強化された機能があります。
バージョン 4.97 より強化された機能があります。
戻り値
変数名 | 値 | 意味 |
---|---|---|
result | 0 | ログファイルを開けた |
1 | ログファイルを開けなかった |
関連コマンド
ログ関係
種別:通信 | Ver | 機能の簡易説明 |
---|---|---|
logautoclosemode | 4.79以降 | マクロ終了時、自動的にログ採取を停止する。 |
logclose | Tera Term のログを終了する。 | |
loginfo | 4.73以降 | Tera Term のログ取得状態を得る |
logpause | Tera Term のログを一時中断する。 | |
logrotate | 4.78以降 | ログをローテートする。 |
logstart | 中断していた Tera Term のログを再開する。 | |
logwrite | 文字列をログに書き込む。>文字列をログに書き込む。 |
使用方法
使用例
・挙動を確認したい場合; すべてのパラメータを指定すると、以下のようになる。 ; logopen 'c:\chk.log' 0 0 0 1 1 0 1 ; これを、変数で管理したい場合の処理コード(サンプル) logfile = 'c:\chk.log' fBin = 0 fAppend = 0 fPlainText = 0 fTimestamp = 1 fFideDialog = 1 fBuffer = 0 fTimestampType = 1 logopen logfile fBin fAppend fPlainText fTimestamp fFideDialog fBuffer fTimestampType・シンプルに記述したい場合
connect '/C=1' ; ユーザ名を取得 getenv 'USERNAME' username ; 日時を取得 gettime timestr "%Y%m%d-%H%M%S" ; ログファイル名に日時とユーザ名を入れる。 sprintf2 filename 'console_%s_%s.log' username timestr ; カレントディレクトリを変更する changedir 'C:\Documents and Settings\yutaka\デスクトップ' logopen filename 0 0 logwrite 'Log start'#13#10 logwrite '*****************************************************'#13#10 logclose end・ログ採取をしながら、定型処理を連続実行させる場合
; ; ログ採取をしながら、定型処理を連続実行させる。 ; getenv 'USERNAME' username gettime timestr "%Y%m%d-%H%M%S" getdir mdir sprintf2 filename '%s\console_%s_%s.log' mdir username timestr logopen filename 0 0 step = 0 while 1 call show_step sendln 'echo do something' wait '$' pause 2 endwhile logclose end :show_step step = step + 1 gettime timestr sprintf2 str '[%d] %s' step timestr statusbox str 'counter' return
サンプル
ログを一度閉じて、開きなおしているサンプルです。備考
オプションについて、より詳細な表を作成しました。オプション名 | 省略 | 型 | 指定例 | 簡単な説明 |
---|---|---|---|---|
<file name> | 不可 | 文字列 | 'log.txt' | ログが書き込まれる。 |
<binary flag> | 不可 | 整数 | 0 | 人が読みやすいよう変換あり |
1 | 変換なし(ログ再生が可能) | |||
<append flag> | 不可 | 整数 | 0 | 追記する |
1 | 上書きする | |||
<plain text flag> | 条件付き可 | 整数 | 0 | ASCII 制御文字を書き込む(デフォルト) |
1 | ASCII 制御文字は書き込まれない | |||
<timestamp flag> | 条件付き可 | 整数 | 0 | 特に何もしない(デフォルト) |
1 | ログの行頭に時刻を追加する | |||
<hide dialog flag> | 条件付き可 | 整数 | 0 | ログ転送のダイアログを表示する(デフォルト) |
1 | ログ転送のダイアログを表示しない | |||
<include screen buffer flag> | 条件付き可 | 整数 | 0 | 特に何もしない(デフォルト) |
1 | 現在の端末バッファすべてを先にファイルに書き込む | |||
<timestamp type> | 可 | 整数 | 0 | timestamp の形式がローカルタイム |
1 | timestamp の形式がUTC | |||
2 | timestamp の形式が経過時間 (Logging) | |||
3 | timestamp の形式が経過時間 (Connection) |
たとえば <timestamp type> の指定を行いたい場合は、途中の 7 つのパラメータもすべて記載しなければなりません。
(途中で省略した場合は、それより後のパラメータも省略しなければなりません)