ログ記録を拡張してみた
ファイル関連 > テキストファイル操作 内の「ログ記録」を拡張してみました。
お裾分けです。
題して「マルチログ記録(CSV)」です。
Ver630で動作確認済みです。
目的/用途
- 処理状況の集計
- 勉強
拡張内容
- マルチ化:2つ以上の書き込みデータに対応
- CSV化:スペース区切りをカンマ区切りに変更
スクリプトの変更箇所
- 書き込みデータの末尾に連番を付与
writeData1 = !書き込みデータ1!
writeData2 = !書き込みデータ2!objFile.Write(Now & "," & writeLabel & "," & writeData1 & "," & writeData2)
- 3つめ以降も同様に1ブロックずつ連番を増やす
- 書き込みラベルを使わないなら、writeLabelがないほうの行を同じように加工する
どうせ増やすなら、書き込みラベルも書き込みデータの1つと見做して有効活用したい
シナリオ内の配置
繰り返し
検索
判断
処理
マルチログ記録(CSV)
ライブラリ拡張の経緯
- 新しく作ったシナリオで、「文字列の連結(nつ)」で「ログ記録」の書き込みデータを生成していた
- 既成ライブラリのみで構成する安心感はあった
- スペース区切りのままでは集計に使いにくかった
- 「文字列の連結(nつ)」は目的のために工夫した
- たかが1パーツ、されど1パーツ、遠回り感のほうが気になった
使用感
- 迂回なしでスッキリ
- 僅かながら時短効果(1日中回し続けるシナリオではチリツモ)
各欄の用途例
- 書き込みラベル:案件ID
- 書き込みデータ:処理結果(処理済み/未処理のフラグ)
- 書き込みデータ:処理メモ(処理内容/未処理理由のキーワード)
仕様メモ
- NowはYYYY/MM/DD hh:mm:ssで記録される(OSやWinActorの書式設定に左右されるのかも)
ExcelならYYYY/MM/DD hh:mm:ssの列もフィルタで年月日時分毎に絞り込めるので、日時の分割は見送り - 常に固定ファイルに処理ログが残り続ける
潔いものの、いつかはログローテとか検討することになりそう
ログローテ
- 10万行で約6MB、5万行で約3MB、17500行で約1MB
- 10万行からでもログ記録で1行追加するのは一瞬で軽々
- ログファイルは1MBを超えると、何となく気持ち悪い
- 実務上は、最新1週間分が残ってれば十分過ぎる
- 1000行/日として、常に下から7000行を残しておけば良さそう
テキストファイルの任意の行を削除したい
5000行のテキストファイルから1~20行目を削除したいhttps://okwave.jp/qa/q6855897.html
more +10000 ログファイル.csv > ログファイル2.csv
- 古いコマンドなのか、65535行目までしか出力されないみたい
→ 65535行を超えないことが自明なファイルに対してなら十分に使えそう
類似のトピック
※ 学びを積み上げてきた今なら、重いことが自明なExcelは使わないかも
「ログ記録」関連のトピック
https://winactor.com/questions/question/マイナーなライブラリ使ってみた。「ログ記録」/
anothersolution 質問の投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。
新規登録