logopen

【Tera Term マクロ言語】コマンドリファレンス

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ホスト名。未接続の場合は空。
&pTCP ポート番号。未接続の場合は空。TCP 接続でないときも空。
&uログオン中のユーザ名。
%a曜日の省略形。
%A曜日の正式名。
%b月の省略形。
%B月の正式名。
%cロケールに対応する日付と時刻の表現。
%d10 進数で表す月の日付 (01 ~ 31)。
%H24 時間表記の時間 (00 ~ 23)。
%I12 時間表記の時間 (01 ~ 12)。
%j10 進数で表す年初からの日数 (001 ~ 366)。
%m10 進数で表す月 (01 ~ 12)。
%M10 進数で表す分 (00 ~ 59)。
%p現在のロケールの午前/午後。
%S10 進数で表す秒 (00 ~ 59)。
%U10 進数で表す週の通し番号。日曜日を週の最初の日とする (00 ~ 53)。
%w10 進数で表す曜日 (0 ~ 6、日曜日が 0)。
%W10 進数で表す週の通し番号。月曜日を週の最初の日とする (00 ~ 53)。
%x現在のロケールの日付表現。
%X現在のロケールの時刻表現。
%y10 進数で表す西暦の下 2 桁 (00 ~ 99)。
%Y10 進数で表す 4 桁の西暦。
%z, %Zレジストリの設定に応じて、タイム ゾーンの名前または省略形を指定します。
タイム ゾーンが不明な場合は指定しません。
%%パーセント記号。
【注意】
バージョン 4.55 で、ログファイル名に strftime のフォーマットを指定したときに展開されない問題の修正が入っています。
<binary flag>
<binary flag> は、ログのタイプを指定します。
省略できません。

指定するパラメータは以下の通りです。
<binary flag>モード挙動の説明
0Text受信した漢字、改行文字は変換されてファイルに書き込まれ、エスケープシーケンスは書き込みません。
1Binary受信した文字をすべてそのままファイルに書き込みます。
バイナリログは、ログ再生に利用可能です。
<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>挙動の説明
0ASCII 制御文字を書き込みます。
省略時は、こちらが指定されたものとして処理されます
1ASCII 非表示文字をログに書き込みません。
これより後のパラメータを指定しない場合において、省略可能です。
<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 です。
省略時は、こちらが指定されたものとして処理されます
1UTC端末の現在時刻を 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 より強化された機能があります。

戻り値

変数名意味
result0ログファイルを開けた
1ログファイルを開けなかった

関連コマンド

ログ関係
種別:通信Ver機能の簡易説明
logautoclosemode4.79以降マクロ終了時、自動的にログ採取を停止する。
logcloseTera Term のログを終了する。
loginfo4.73以降Tera Term のログ取得状態を得る
logpauseTera Term のログを一時中断する。
logrotate4.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>条件付き可整数0ASCII 制御文字を書き込む(デフォルト)
1ASCII 制御文字は書き込まれない
<timestamp flag>条件付き可整数0特に何もしない(デフォルト)
1ログの行頭に時刻を追加する
<hide dialog flag>条件付き可整数0ログ転送のダイアログを表示する(デフォルト)
1ログ転送のダイアログを表示しない
<include screen buffer flag>条件付き可整数0特に何もしない(デフォルト)
1現在の端末バッファすべてを先にファイルに書き込む
<timestamp type>整数0timestamp の形式がローカルタイム
1timestamp の形式がUTC
2timestamp の形式が経過時間 (Logging)
3timestamp の形式が経過時間 (Connection)
表中の「条件付き可」は、それより後のパラメータを指定したい場合に省略できないことを示します。
たとえば <timestamp type> の指定を行いたい場合は、途中の 7 つのパラメータもすべて記載しなければなりません。
(途中で省略した場合は、それより後のパラメータも省略しなければなりません)