カスタムロガー
独自のロガーを作成する
エラーを発見するための上記のツールでは十分でない場合、いつでも独自のロガーを作成し、その中に必要なものをすべて実装することができます。例えば、イベントの一般的な説明に加えて、このイベントをトリガーしたユーザーとそのアクセスレベルについての情報を追加するロガーを作成してみましょう。
ロガー・データ・モデル
これを行うには、まずデータベースでモデルを作成しましょう。3つの必須フィールドを持つ、非常にシンプルなモデルが必要です。
- info (text)- イベントに関する一般的な情報
- user (integer)- ユーザーID
- access (array string) - ユーザーグループ(複数あるかもしれません)
ロガー・ビジネス・プロセス
その後、データベースにログを書き込むためのビジネスプロセスを作成します。そのタスクは、あらゆるイベントに関する情報を受け取り、それをユーザーに関する情報で補完し、最終結果をデータベースに保存することです。
ユーザーに関する情報を取得するには Auth: Get current userブロックを使用します。このブロックは、以下の場合にのみ、結果をユーザモデルとして表現することができることに注意してください。 Middleware Token Authが実行を開始したエンドポイントで有効になっている場合のみ、結果をユーザーモデルとして表現できることに注意してください。
結果を展開し、必要な情報を得るには Expand Userを使用して、結果を展開し、必要なフィールドを取得します。この場合、これらはID 、Login 、およびGroups です。最初の2つを使うのはとても簡単で、Login をメールフォーマットから標準的なString (To Stringブロック)に変換するだけです。
ユーザーグループの場合、状況はやや複雑になります。これらは Enum形式で保存されます。これは列挙型で、データベースには識別子のリストだけが格納され、そのテキスト値は格納されません。この例では、値 1 は管理者のグループ (Admins) に、値 2 はユーザーのグループ (Users) に対応します。
我々のタスクは、この識別子を解読し、結果を便利なテキストデータの形で書き込むことである。そのために必要なのが
- ユーザーグループに関するテキスト情報を書き込む変数を宣言します。を使いましょう。 String Arrayと Set Variableブロックを使ってみましょう。
- でループを開始します。 For each loopブロックでループを開始します。このブロックはユーザーのグループの配列を受け取り、各反復で次のグループをそのテキスト値に変換して配列に追加します。
- ブロックを使って Switchブロックを使って、ユーザーグループをチェックし、その結果に応じて、処理をさらに進めます。
- を使用して Stringと Set Variableブロックを使って、ユーザーグループの必要な値を変数に格納します。
- を使用します。 Append Arrayと Set Variableブロックを使用して、結果を配列に追加し、ループの開始前に宣言された変数に格納します。
ループの終了時には Concat Strings (Multiple)ブロックを使用して、散在するデータから最終的な文字列を形成し、それを Textに変換し、ログに書き込む。
最後にすることは、モデルを生成し logモデルを生成し、それをデータベースに書き込むことです。
出来上がったBPは以下のようなものになるはずです。
ロガーエンドポイント
ビジネスプロセスの準備ができました。あとは、そのためのエンドポイントを作成する必要があります。これを行うには、エンドポイントのシステム・ビジネス・プロセスを、先ほど作成したビジネス・プロセスに置き換えます。 POST /log/エンドポイントのシステム・ビジネス・プロセスを、先ほど作成したビジネス・プロセスで置き換えます。
これで、自分たちのログは完全に準備が整いました。モジュールの一番最初にある Basic functionsビジネスプロセスに戻り、標準のログを自作したログに置き換えることができます。
これで、計算が開始されるたびに、特別なログには、まさにこのイベントの事実に関する情報だけでなく、どのユーザーがそれを行ったかという情報も記録されるようになります。で結果を確認することができる。 Swagger.
素晴らしい、私たちのログは本当に機能しています。これで、イベント、ユーザのログイン、アクセス権に関する情報が含まれるようになりました。
起こりうるエラーと推奨されるアクション
その結果、考えられるエラーの種類と、それを修正するためのアクションが構成されます。
- ビジネスプロセス自体におけるエラー。ログを使った段階的な検証を行うことが推奨される。このように、ビジネスプロセスの特定のブロックを起動した事実と、そのブロックが使用するすべてのパラメータを、入力と出力の両方で確認することができます。
- サーバーにリクエストを送信する際のエラー。これには、ブラウザのDeveloper Tools を使用する。リクエストが送信された事実を確認し、その構造を解析し、受信したレスポンスを確認することができます。
- リクエストは不正なものです。Swagger 、様々なクエリーオプション、パラメータの組み合わせを確認し、徹底的にテストすることをお勧めします。
- リクエストの結果が正しくパースされません。あるべきでないところで結果を待っていることが起こる。例えば、データベースにデータを追加しても、このデータを表示するテーブルでは更新されない。各コンポーネントには対応するビジネスプロセスが必要であることを忘れず、このプロセスが正しく構成されていることを確認してください。