クラッシュコース101
10 モジュール
5 週

カスタムロガー

クリックでコピー

独自のロガーを作成する


エラーを発見するための上記のツールでは十分でない場合、いつでも独自のロガーを作成し、その中に必要なものをすべて実装することができます。例えば、イベントの一般的な説明に加えて、このイベントをトリガーしたユーザーとそのアクセスレベルについての情報を追加するロガーを作成してみましょう。

ロガー・データ・モデル

これを行うには、まずデータベースでモデルを作成しましょう。3つの必須フィールドを持つ、非常にシンプルなモデルが必要です。

  • info (text)- イベントに関する一般的な情報
  • user (integer)- ユーザーID
  • access (array string) - ユーザーグループ(複数あるかもしれません)


ロガー・ビジネス・プロセス

その後、データベースにログを書き込むためのビジネスプロセスを作成します。そのタスクは、あらゆるイベントに関する情報を受け取り、それをユーザーに関する情報で補完し、最終結果をデータベースに保存することです。

ユーザーに関する情報を取得するには Auth: Get current userブロックを使用します。このブロックは、以下の場合にのみ、結果をユーザモデルとして表現することができることに注意してください。 Middleware Token Authが実行を開始したエンドポイントで有効になっている場合のみ、結果をユーザーモデルとして表現できることに注意してください。


結果を展開し、必要な情報を得るには Expand Userを使用して、結果を展開し、必要なフィールドを取得します。この場合、これらはIDLogin 、およびGroups です。最初の2つを使うのはとても簡単で、Login をメールフォーマットから標準的なString (To Stringブロック)に変換するだけです。

ユーザーグループの場合、状況はやや複雑になります。これらは Enum形式で保存されます。これは列挙型で、データベースには識別子のリストだけが格納され、そのテキスト値は格納されません。この例では、値 1 は管理者のグループ (Admins) に、値 2 はユーザーのグループ (Users) に対応します。

我々のタスクは、この識別子を解読し、結果を便利なテキストデータの形で書き込むことである。そのために必要なのが

  • ユーザーグループに関するテキスト情報を書き込む変数を宣言します。を使いましょう。 String ArraySet Variableブロックを使ってみましょう。
  • でループを開始します。 For each loopブロックでループを開始します。このブロックはユーザーのグループの配列を受け取り、各反復で次のグループをそのテキスト値に変換して配列に追加します。
  • ブロックを使って Switchブロックを使って、ユーザーグループをチェックし、その結果に応じて、処理をさらに進めます。
  • を使用して StringSet Variableブロックを使って、ユーザーグループの必要な値を変数に格納します。
  • を使用します。 Append ArraySet Variableブロックを使用して、結果を配列に追加し、ループの開始前に宣言された変数に格納します。


ループの終了時には Concat Strings (Multiple)ブロックを使用して、散在するデータから最終的な文字列を形成し、それを Textに変換し、ログに書き込む。


最後にすることは、モデルを生成し logモデルを生成し、それをデータベースに書き込むことです。


出来上がったBPは以下のようなものになるはずです。


ロガーエンドポイント

ビジネスプロセスの準備ができました。あとは、そのためのエンドポイントを作成する必要があります。これを行うには、エンドポイントのシステム・ビジネス・プロセスを、先ほど作成したビジネス・プロセスに置き換えます。 POST /log/エンドポイントのシステム・ビジネス・プロセスを、先ほど作成したビジネス・プロセスで置き換えます。


これで、自分たちのログは完全に準備が整いました。モジュールの一番最初にある Basic functionsビジネスプロセスに戻り、標準のログを自作したログに置き換えることができます。


これで、計算が開始されるたびに、特別なログには、まさにこのイベントの事実に関する情報だけでなく、どのユーザーがそれを行ったかという情報も記録されるようになります。で結果を確認することができる。 Swagger.


素晴らしい、私たちのログは本当に機能しています。これで、イベント、ユーザのログイン、アクセス権に関する情報が含まれるようになりました。

起こりうるエラーと推奨されるアクション

その結果、考えられるエラーの種類と、それを修正するためのアクションが構成されます。

  • ビジネスプロセス自体におけるエラー。ログを使った段階的な検証を行うことが推奨される。このように、ビジネスプロセスの特定のブロックを起動した事実と、そのブロックが使用するすべてのパラメータを、入力と出力の両方で確認することができます。
  • サーバーにリクエストを送信する際のエラー。これには、ブラウザのDeveloper Tools を使用する。リクエストが送信された事実を確認し、その構造を解析し、受信したレスポンスを確認することができます。
  • リクエストは不正なものです。Swagger 、様々なクエリーオプション、パラメータの組み合わせを確認し、徹底的にテストすることをお勧めします。
  • リクエストの結果が正しくパースされません。あるべきでないところで結果を待っていることが起こる。例えば、データベースにデータを追加しても、このデータを表示するテーブルでは更新されない。各コンポーネントには対応するビジネスプロセスが必要であることを忘れず、このプロセスが正しく構成されていることを確認してください。
Was this article helpful?
まだ答えをお探しですか?