オープンソースのローコード開発ツールのプリザンター(pleasanter)ブログ

オープンソースのローコード開発ツールのプリザンター(pleasanter)のブログとサービス情報サイトです

カテゴリ : お知らせプリザンターとは?使い方スクリプト・スタイル環境構築事例動画

必読!プリザンターのサーバースクリプトのログの種類と使い方わかりやすく解説します

こんにちは。
リーデックス小川です。

ローコードで業務アプリを開発できるプリザンターでは、「スクリプトの動作状況を素早く把握してトラブルを未然に防ぐ」ことが運用コストを左右します。

そこで鍵になるのがサーバースクリプトのログです。

今回の記事では、サーバスクリプトのログのポイントと現場での活用ノウハウをまとめました。

サーバースクリプトのログ出力

プリザンターのサーバースクリプトに標準で用意されているログ機能はバージョン1.4.12.0以降で利用可能です。

ブラウザの開発者ツールコンソールへの出力と、SysLogsテーブル(システムログ)への記録を同時に行い、発生箇所・時刻・内容を一元管理できます。

 

ログの種類と特徴

種類 想定シーン 出力例
Info 通常フローの進捗確認 logs.LogInfo("バッチ処理開始します")
Warning 予兆レベルの注意喚起 logs.LogWarning("在庫数が閾値未満です")
UserError ユーザ操作起因エラー logs.LogUserError("権限外操作を実行しました")
SystemError システム側の致命的エラー logs.LogSystemError("レコードの作成に失敗しました。")
Exception try–catch で捕捉した例外 logs.LogException(e)
※eはエラーオブジェクト

logs.Log()を使えば第1引数に種類、第2引数にメッセージを渡して一括制御も可能です。

Infoログ

処理が正しく進んでいることを確認する“健康診断”用。ジョブの開始/終了時刻やレコード件数を残すと、性能劣化の兆候を早期に発見できます。

Warningログ

将来的にエラーになり得る状態を記録します。すぐに対応は不要とはいえ、今対応すれば大事に至らないケースを拾い上げます。

UserErrorログ

入力ミスやアクセス権不足などユーザ操作由来の障害を記録します。

SystemErrorログ

DB接続失敗やタイムアウトなど、システムやインフラ側の問題を記録します。アラート連携を設定することで、エラーの早期発見と対応が可能となります。

Exceptionログ

try–catchブロックで捕捉した例外の記録します。複雑なスクリプトでも原因究明を早めることができます。

logオブジェクト

サーバスクリプトでログの出力を行うオブジェクトはlogsになります。ブラウザの開発者ツールのコンソール上の表示とプリザンターの「テナントの管理」より確認できるシステムログへ出力することができます。

 

No メソッド名 説明
1 logs.LogInfo ログの種類:Infoとしてログを表示、出力します。
2  logs.LogWarning ログの種類:Warningとしてログを表示、出力します。
3  logs.LogUserError ログの種類:UserErrorとしてログを表示、出力します。
4  logs.LogSystemError ログの種類:SystemErrorとしてログを表示、出力します。
5  logs.LogException ログの種類:Exceptionとしてログを表示、出力します。
6 logs.Log 指定したログの種類でログを表示、出力します。

(マニュアルより抜粋)

 

使い方は1~5はほぼ一緒ですので、logs.LogInfoで説明します。下記のような構文をログを出力したい部分に記述します。

logs.LogInfo(message, method, console, syslogs)

 

メソッドの内容は下記のとおりです。

パラメータ 必須 説明
message string 表示、出力するエラー内容を指定。
method string   省略可能。既定値は空文字。
console bool   省略可能。既定値はtrue。ブラウザの開発者ツールのコンソールに表示する場合はtrueを指定
syslogs bool   省略可能。既定値はtrue。システムログに出力する場合はtrueを指定

(マニュアルより抜粋)

 

なお、Logs.logについては、ログの種類を番号で指定する引数が一つ増えていますが、それ以外のフォーマットは変わりません。

logs.Log(type, message, method, console, syslogs)

 

パラメータ 必須 説明
type int ログの種類を指定。指定可能な値は以下の通り
10:Info
50:Warning
60:UserError
80:SystemError
90:Exception
      その他パラメータは他のメソッドとおなじ

(マニュアルより抜粋)

ログの設定と確認方法

では、具体的なログの出力方法を確認してみましょう。

try {
    const start = Date.now();
    logs.LogInfo("受注API呼び出し開始");
    //・・・処理・・・・・
    logs.LogInfo(`処理完了 所要時間:${Date.now() - start}ms`);
} catch(e) {
    logs.LogException(e);
}

SysLogsテーブルを確認

それでは、SysLogsに出力されたログを確認して見ましょう。

ログは「ナビゲーションメニュー」 →「システムログ管理」より見ることができます。

「システムログ管理」は特権ユーザ(こちらの記事を参照)のみで閲覧できますので、表示されていない場合は、特権ユーザでログインしてください。

SystemErrorとExceptionについては、エラーメッセージ列にエラーの内容が表示されます。

また、Info、Warning、UserErrorについては、「システムログの管理」には表示されず、SyslogテーブルのCommentsに出力されます。Syslogテーブルについての詳細は下記マニュアルをご覧ください。

ブラウザのコンソールでリアルタイム確認

次に、ブラウザのコンソールで確認してみましょう。

ブラウザを開き、開発者ツール(F12)→ Consoleタブで見ることができます。Syslogsテーブルの表示とは違い、Info、Warning、UserErrorでも出力内容を確認することができます。

ログ活用のメリット

トラブル対応がグッと早くなる

エラーが起きたときに「いつ・どこで・何が」起きたかをログが教えてくれるため、原因を突き止めるまでの対応スピードが上がります。また、同じ状況の再現もやりやすくなります。

失敗したバッチやボタン操作も、ログを見れば特定できるため、対応が短時間で終わります。

毎日の運用が“見える化”する

LogInfoに「開始」「終了」「件数」を残すだけで、処理に何秒かかったかが分かります。

気になる処理の時間をログ出力することで「最近ちょっと遅いかも?」を数字で確認することができます。

セキュリティや原因調査にも役立つ

LogUserErrorには「誰が・いつ・何を操作したか」が残るので、入力ミスや不正操作の証拠になります。

同じIDやIPから同じエラーが繰り返し出ていれば、「操作手順が分かりにくいのかもしれない」と気付くきっかけになります。

ログを活用することで、運用マニュアルや画面設計の改善に役立つ情報が集まるのもメリットです。

まとめ

今回は、サーバスクリプトのログのポイントと現場での活用ノウハウをまとめました。

サーバスクリプトのログについてサーバースクリプトログを「記録」ではなく「運用データ」として捉えることで、

  • 障害対応の工数削減
  • 継続的なパフォーマンス改善
  • セキュリティや原因調査の効率改善

を同時に実現できますので、ぜひご活用ください。

弊社では、プリザンターの認定トレーナーとしてトレーニングを実施しています。

プリザンターの基礎から応用まで幅広いラインナップを取り揃えていますので、プリザンター初心者はもちろんのこと、効率よくスキルアップしたい方にもオススメです!

詳しくはこちらにありますので、気になった方はぜひご覧ください。

それでは、今回はこの辺で。最後までご覧いただき、ありがとうございました。

 

【PR】こんな記事もありますので、もしよければご参考ください。

pleasanter.hatenablog.jp