2019/06/16(日)マクロログ用サブルーチン fnLog

はてブ数 2019/06/16 21:07 Macro::macro サンプル

マクロログ用サブルーチン fnLog

このサンプルマクロは、以下の仕様を満たすものとします。

マクロの目的

マクロ自体の実行ログを出力します。

定義する Tera Term マクロ用のサブルーチン fnLog は、変数 pOutputLine の内容をログファイルへ出力するものです。
logopen は connect を正常実行した後でなければ使えないため、connect を使用しない場合のログ取得を行うために開発しています。

利用可能環境

Teraterm
依存する Tera Term バージョン:Tera Term 4.80 以降*1

利用する Tera Term コマンド:
種別:制御Ver機能の簡易説明
callサブルーチンをコールする。
endマクロの実行そのものを終了する。
returnサブルーチンを抜け、メインルーチンへ戻る。
種別:文字列操作Ver機能の簡易説明
sprintf24.62以降フォーマットされた出力を返す。
種別:ファイル操作Ver機能の簡易説明
filecloseファイルハンドルを閉じる。
fileopenファイルを開く。
filewritelnファイルに文字列を改行付きで書き込む。
getdirMACRO の現在のディレクトリを得る。
makepathフルパス名を作成する。
種別:その他Ver機能の簡易説明
gettime現在の時刻を得る。
4.57以降書式を指定するオプションの追加。
4.58以降互換性維持のための仕様変更。
4.74以降タイムゾーンを指定するオプションの追加。
4.80以降マクロ実行前後でタイムゾーンを復元するよう仕様変更。

マクロの使い方

別途開発する Tera Term マクロの最後に追記(組み込んで使用)してください。

*1 : 保存する文字コードによっては Tera Term バージョン 4.102 以降

コード

著作権情報

このサンプルマクロに関する著作権は、当サイト管理者が所有しています。
著作権者
神場 和也(著作人格権は放棄しません)
ライセンス
ほかのプログラムへ、現状のまま組み込んで利用する限り、著作者の許諾は不要です。
改変する場合においては、改変した者もしくは改変を許可した法人がすべての責任を負うことを求めます。
なお、著作人格権を持つものに無断でコード自体を商材として利用することを禁じます。
関連情報
(なし)

サンプルコード

;;; 環境設定 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; ディレクトリ情報
getdir pBaseDir

;; ファイル情報
gettime pLogData "teraterm-rdp-%Y%m%d.log"

; Tera Term ログ
makepath pLogFile pBaseDir pLogData

; サブルーチン fnLog 用変数初期化
pOutputLine = ''

;;; メイン処理 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

pOutputLine = 'ログ出力メッセージ'
call fnLog

;;; 終了処理 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

end

;;; 関数処理 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; マクロログ取得
:fnLog
    ; 変数 pOutputLine の内容をログファイルへ出力するサブルーチン。
    fileopen fhLog pLogFile 1

    ; ログ出力時刻情報取得
    gettime pLogTime "%Y/%m/%d %H:%M:%S"

    ; メッセージ生成
    sprintf2 MsgLine "%s %s" pLogTime pOutputLine

    ; ファイルへ追記して終了
    filewriteln fhLog MsgLine
    fileclose fhLog

return

備考

特にありません。