シナリオ稼働状況のモニタリング
※ テキストファイルの先頭行に追記する方法を特定し、最下部に追記しました。
シナリオ稼働状況を遠隔でリアルタイムにモニタリング。
ニーズがあるでしょうか。
わたしが別のRPAもどきツール+VBAで活用中のしくみからのスピンオフでお裾分けです。
概要
- WinActorのログファイルをIEやChromeで常に表示しておく
用途
- エラー対策のバリエーションの1つ
https://winactor.com/questions/?q=エラー対策
考えるきっかけになったスレッド
https://winactor.com/questions/?q=【ログ記録】の書き込みできません。というエラーについて
条件
- 同梱ライブラリの「ログ記録」を使う
https://winactor.com/questions/?q=ログ記録
ニーズによっては、オプション > ログ の「実行ログ」でもOK
https://winactor.com/questions/?q=実行ログ
- ログファイルをネットワークフォルダに保存する
(例:machineA_scenario01.log)
拡張子はテキストファイル向けなら何でもOK
.logならそれっぽいし、ファイル名の文字列を節約できそう
.txt/.csv/.datあたりなら、右クリックで編集メニューが出るから便利かも
※ ログの項目は適宜増やせる
https://winactor.com/questions/question/ログ記録を拡張してみた/
モニタリング目的なら、カンマ区切りよりスペース区切りのほうが見やすい
- 同じフォルダにHTMLファイルを格納する
(例:monitor.html)
必要なスキルのレベル感
- 10行程度のHTMLが扱えること
HTML5/ページ全般/meta要素 文書の再読み込みを指定する - TAG index
https://www.tagindex.com/html5/page/meta_refresh.html
HTML5/埋め込み/iframe要素 インラインフレームを作る - TAG index
https://www.tagindex.com/html5/embed/iframe.html
- ログファイルを別フォルダに置く場合は、絶対パス/相対パスを扱えること
作りかた
- HTMLファイルを作成
- 最下部のHTMLソースをメモ帳にコピって、monitor.htmlとして保存
- ログファイル名を適宜変更
- 更新頻度を適宜調整
- HTMLファイルをログファイルと同じフォルダに格納
使いかた
- IEやChromeでmonitor.htmlを開く
monitor.htmlをIEやChromeのボディにドラッグ
しくみのポイント
- フレームでログファイルを表示
- 定期的に自動再読み込み
すでに標準でこんな機能がどこかに備わってたりして、、
完全ハンズフリーを見据えた課題と最適化の視点
- 新しいログが最下行に追記される
「ログ記録」を1行目に追記される仕様に改造できればベター
頑張ればできそうな気がするし、フォーラム内にもノウハウがあったかもしれない
- ログの粒度が粗い
1件毎だけでなく、1件中のパート毎(サブルーチン毎)に「ログ記録」を配置して粒度アップ
- 表示が1機分のみ
フレームを幅25%にして4つ並べたり、高さ50%にして計8つ並べて、複数台分のログをまとめて表示
ビルの管理人室で、たくさんの監視カメラの映像が見られるイメージ- サンプルは見つかるものの、iframeではなくframeset、、
html frameset「ウィンドウを複数のフレームに分割する」 | WEPICKS!
https://wepicks.net/htmltag-frameset/ - framesetはHTML5で廃止になっている模様、、
<frameset> - フレームセット - とほほのWWW入門
https://www.tohoho-web.com/html/frameset.htm
<FRAMESET>-HTMLタグリファレンス
http://www.htmq.com/html/frameset.shtml - framesetは、最新のIEとChromeでもなお意図通りに表示される
- 10行コード1ファイルのメリットをなるべく損なわずに、HTML5の推奨範囲に差し替えるには、tableを使うことになりそう
テーブルの中にフレームを組み込む事って出来ないのでしょうか? - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1171719186
https://www.google.com/search?q=HTML+table
tableなんかよりもっと良い方法があるでしょうか
- サンプルは見つかるものの、iframeではなくframeset、、
- PC起動時に自動表示したい
たとえばスタートアップに「"chrome.exeのフルパス" "monitor.htmlのフルパス"」のショートカットを登録する
- 今日のログだけを表示させたい
別途ログローテを検討
https://winactor.com/questions/?q=ログローテ
monitor.htmlのソース
<html>
<head>
<meta http-equiv="Refresh" content="60">
<title>Log Viewer</title>
</head><body>
<iframe src="machineA_scenario01.log" width="100%" height="100%">
</body></html>
※ 太字:主な編集箇所
※ 追記
テキストファイルの先頭行に追記する方法を特定しました。
コマンドに慣れてる人ならすぐに思いつくであろう、ベーシックなコマンドのシンプルな組み合わせです。
事前準備
新規.log:1行
蓄積.log:10行
コマンド
chcp 51932
more +0 C:\rpalog\蓄積.log > temp
type C:\rpalog\新規.log temp > C:\rpalog\蓄積.log
リファレンス
以前にヒントをいただいたTYPEコマンドが活きました。
https://winactor.com/questions/question/テキストファイルの1行目を削除して別のテキス/
ここの例を真似しました。
テキストファイルをWindowsコマンドラインと連結し、先頭行を削除する
https://qastack.jp/programming/2477271/concatenate-text-files-with-windows-command-line-dropping-leading-lines
more抜きだとテキストファイルが開いちゃうので、やむなくmore +0としました。
ほかに正攻法があるでしょうか。
日本語が文字化けしちゃう症状は、文字コードの指定で解消できました。
コマンドプロンプト | 文字コードの設定(CHCP)
https://www.javadrive.jp/command/display/index5.html
時間を見つけて「マルチログ記録(CSV)」にうまく取り込めたら、続報します。