2025/09/20

共通部品にチャレンジ:#1)LotusScript 実行ログ - 動作記録を一元管理

久しぶりに新しい連載を始めます。

とはいってもまったく新しいことを始めるのではなく、連載『作ってみよう』の派生です。『作ってみよう』は、アプリケーションを作ることを目的にしていますが、この連載では、アプリケーションで利用できる共通部品の作成に特化します。

最初のネタは、『LotusScript の実行ログ』の収集です。アプリ数が増えてくると各アプリが正常に動作しているか、エラーは発生していないか、日々巡回するのは手間がかかります。LotusScript の実行ログが一元管理されているだけでもアプリの運用監視が楽になりますね。

先日『LotusScript の実行確認と NotesLog クラス』で NotesLog クラスを使ったログの取得方法を紹介しました。このクラスを使用して、ログを指定したデータベースに出力できます。ただ、出力される項目は、時間、エージェント名、ユーザ名とログだけでかなりシンプルです。

これで一元管理はできるのですが、もう少し得られる情報が充実しているほうが、何かあったときの対応が楽になります。そこで、今回は自作のログ出力機能を作成したいと思います。


LotusScript 実行ログ

出力されるログのイメージはこんな感じです。上部に実行時間やエージェント名、エラーメッセージなどの基本情報、中段にはユーザやアクセス権、実行環境の情報、下部のリッチテキストにログを出力しています。

ログ部分は大量に出力されることを前提にリッチテキストにしています。せっかくのリッチテキストなので、エラーは赤の太字、日時は薄く表示してメリハリをつけ、見やすくしています。


◇ 経過時間の表示

また、ログ出力間の時間を測定し、閾値を越えると経過時間を表示する機能も作ります。簡易的にではありますが、レスポンスの遅い部分が調査できます。


◇ ACL 情報

LotusScript の実行者のアクセス権の情報を表示します。ACL の権限レベルだけでなく、ロールや文書の削除権限などの ACL のオプション情報も収集します。エラー発生時など権限の影響判定がしやすくなりますね。


◇ 実行環境

[実行環境]タブには、実行したクライアントのバージョンやプラットフォームの情報を表示します。環境に依存する問題の調査に利用できます。


作り方は次回以降

作成する設計要素は、ログを出力する DB のフォームとビュー、そして、ログを出力するためのスクリプトライブラリとなります。実アプリでログ機能を組み込む際には、スクリプトライブラリをアプリ内にコピペして、それを Use して利用するという流れとなります。

次回から順に機能の作成を進めます。


共通部品にチャレンジ


0 件のコメント:

コメントを投稿