3

※ テキストファイルの先頭行に追記する方法を特定し、最下部に追記しました。

 

 

シナリオ稼働状況を遠隔でリアルタイムにモニタリング。
ニーズがあるでしょうか。
わたしが別のRPAもどきツール+VBAで活用中のしくみからのスピンオフでお裾分けです。

 

概要

  • WinActorのログファイルをIEやChromeで常に表示しておく

 

用途

 

考えるきっかけになったスレッド

https://winactor.com/questions/?q=【ログ記録】の書き込みできません。というエラーについて

 

条件

  1. 同梱ライブラリの「ログ記録」を使う
    https://winactor.com/questions/?q=ログ記録
     
    ニーズによっては、オプション > ログ の「実行ログ」でもOK
    https://winactor.com/questions/?q=実行ログ
     
  2. ログファイルをネットワークフォルダに保存する
    (例:machineA_scenario01.log)
    拡張子はテキストファイル向けなら何でもOK
    .logならそれっぽいし、ファイル名の文字列を節約できそう
    .txt/.csv/.datあたりなら、右クリックで編集メニューが出るから便利かも
     
    ※ ログの項目は適宜増やせる
    https://winactor.com/questions/question/ログ記録を拡張してみた/
    モニタリング目的なら、カンマ区切りよりスペース区切りのほうが見やすい
     
  3. 同じフォルダに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

  • ログファイルを別フォルダに置く場合は、絶対パス/相対パスを扱えること

https://www.google.com/search?q=HTML+絶対パス+相対パス

 

作りかた

  1. HTMLファイルを作成
    1. 最下部のHTMLソースをメモ帳にコピって、monitor.htmlとして保存
    2. ログファイル名を適宜変更
    3. 更新頻度を適宜調整
  2. HTMLファイルをログファイルと同じフォルダに格納

 

使いかた

  1. IEやChromeでmonitor.htmlを開く
    monitor.htmlをIEやChromeのボディにドラッグ

 

しくみのポイント

  1. フレームでログファイルを表示
  2. 定期的に自動再読み込み
    すでに標準でこんな機能がどこかに備わってたりして、、

 

完全ハンズフリーを見据えた課題と最適化の視点

  • 新しいログが最下行に追記される
    「ログ記録」を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なんかよりもっと良い方法があるでしょうか
       
  • 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)」にうまく取り込めたら、続報します。

https://winactor.com/questions/question/ログ記録を拡張してみた/

anothersolution 新しいコメントを投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。