logrotate

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

logrotate 機能

[通信コマンド]

ログをローテートします。

コマンドライン

logrotate 'size' '<size>'
logrotate 'rotate' <count>
logrotate 'halt'

機能説明

取得中のログファイルに対するローテーション設定を行います。
設定は即時反映されますが、即時ローテートするわけではありません。
size
ログのサイズが <size> バイトを超えていれば、ローテーションするよう設定します。

第1パラメータに、文字列で 'size' を指定することで、第2パラメータがローテーションサイズであることを指定します。

第2パラメータに、文字列でサイズを指定します。
<size> は 128 バイト以上で指定してください。
末尾に"K"があるとキロバイト単位、"M"があるとメガバイト単位になります。
rotate
ローテーションした際、何世代まで保存するか(何世代先を削除するか)設定します。

第1パラメータに、文字列で 'rotate' を指定することで、第2パラメータが世代数であることを指定します。

第2パラメータに、整数で世代数を指定します。
<count> は 1 以上を指定してください。
halt
第1パラメータに、文字列で 'halt' を指定することで、ローテーション設定を破棄することを指定します。
以後、ローテーションされなくなります。

パラメータの説明

指定するパラメータは以下の通りです。
パラメータパラメータ説明
(第1パラメータ)文字列'size'、'rotate'、'halt'のいずれかを指定します。
(第2パラメータ)文字列'size' を指定した場合に、ローテーションするログサイズを指定します。
整数'rotate' を指定した場合に、世代数を指定します。

対象バージョン

バージョン 4.78 以降で利用可能です。

戻り値

戻り値はありません。

関連コマンド

種別:通信Ver機能の簡易説明
logautoclosemode4.79以降マクロ終了時、自動的にログ採取を停止する。
logcloseTera Term のログを終了する。
loginfo4.73以降Tera Term のログ取得状態を得る
logopenTera Term のログを開始する。
4.61以降ログ再生可能なバイナリオプションの追加。
4.62以降ログを開けたかどうか result を返す仕様の追加。
4.80以降端末バッファをログへ含めるオプションの追加。
4.97以降ログ行頭へタイムスタンプを追記するオプションの追加。
logpauseTera Term のログを一時中断する。
logstart中断していた Tera Term のログを再開する。
logwrite文字列をログに書き込む。>文字列をログに書き込む。

使用方法

使用例

・開いたログに対し 32KB 単位で 3 世代ローテーションを行う場合
; Open log
getspecialfolder str "MyDocuments"
changedir str
logopen 'teraterm_sample.log' 0 0

; Start log rotation
logrotate 'size' '32K'
logrotate 'rotate' 3

pause 600
; Stop log rotation
logrotate 'halt'

pause 600

; Close log
logclose
・ファイル上部の変数で動作を変更できるように構成した場合
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 変数設定(環境に合わせて設定)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

logrotateflag = 0     ; 整数型(0 = 設定する、1 = 設定をクリアする)
logsize       = '1M'  ; 文字列型(Byte単位だが K もしくは M も利用可)
generation    = 3     ; 整数型

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 変数設定(変更不要)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

set-size = 'size'
set-rota = 'rotate'
set-halt = 'halt'

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

loginfo logname

if result == -1 then
    logopen 'c:\terminal.log'
endif

if logrotateflag = 0 then
    logrotate set-size logsize
    logrotate set-rota generation
else
    logrotate set-halt
endif

サンプル

サンプルマクロはありません。

備考

特にありません。