Skip to main content

 

 

 

 

Template:OutSystems/Documentation_KB/Breadcrumb_New_Layout

 

 

Template:OutSystems/OSLanguageSwitcher

 

 

 

OutSystems

OutSystemsのログデータを別のデータベースに保持する

This article applies to:OutSystems 11

バージョン10までは、OutSystemsでは1つのデータベースを使用してアプリケーションデータログデータの2種類のデータを保存していました。このような種類のデータでは要件が異なるため、データの種類ごとに異なる処理が必要になる場合があります。

OutSystems 11では、ログデータを別のデータベースに保存できるため、アプリケーションデータにアクセスしているときに、ログの書き込み操作が実行中のアプリケーションに及ぼす影響が軽減されます。これにより、データベースの保守作業で、2種類のデータの重要性やセキュリティに関するビジネス上の懸念に適切に対処できるようになります。

アーキテクチャ

ログは、見えにくいエラーの特定に役立つだけではなく、最終的にユーザーやビジネスに影響を及ぼすことになる問題のトラブルシューティングにも利用できる重要な情報です。

ログは重要ですが、ログを収集する際には、アプリケーション操作時のユーザーエクスペリエンスに影響を与えないように配慮する必要があります。そのため、ログの生成に関してアプリケーションを確実かつ適切に分離することが重要です。ログの多いアプリケーションによって、同じインフラで実行されている他のアプリケーションの動作やユーザーエクスペリエンスが損なわれてはなりません。

OutSystems 11の各アプリケーションは内部ロギングAPIを使用して、それぞれ独自のログエントリを書き込むため、こうしたログの書き込み中にユーザーリクエストがブロックされなくなります。このロギングAPIは、アプリケーションで生成されたログ情報を収集し、ログデータベースに送信します。

ログデータへのアクセス

ログ情報を読み取るには、アプリケーション開発者が新しいPlatformLogs拡張機能によって公開されたエンティティを参照し、ログデータベースから直接ログデータを取得します。

ただし、OutSystemsのログモデルが根本的に変更されたため、こうしたエンティティを利用するアプリケーションは、エンティティをどのように利用しているかによって、アップデートが必要になる場合があります。

既存のアプリケーションへの影響

ログエンティティは、アプリケーションデータベースとは別の物理データベースに保存できるテーブルに保持されるようになりました。このため、ログデータが別のデータベースにあるかどうかにかかわらず、ログデータとアプリケーションデータを結合できなくなりました

これは、ログとアプリケーションデータの結合を現在使用しているアプリケーションに影響を及ぼし、そうしたアプリケーションは無効になるため、開発者は何らかの変更を行う必要があります。OutSystemsでは、こうした無効なアプリケーションをアップデートする方法に関してガイドを提供しています。

影響のレベルを下げるために、ログエンティティは非正規化されました。また、ログレコードをわかりやすくするために必要なデータのほとんどがログエンティティに含まれるようになり、他のテーブルとの結合が不要になりました。アプリケーション名を取得するために、「Application Name」などのアトリビュートを「Application」エンティティと結合する必要がなくなりました。

ログエンティティに追加されたアトリビュートは、以下のとおりです。

アトリビュート 追加先
Espace_Name すべてのログエンティティ
Application_Name すべてのログエンティティ
Application_Key すべてのログエンティティ
Username Log_ErrorLog_Error_PreviousLog_ExtensionLog_Extension_PreviousLog_GeneralLog_General_PreviousLog_Mobile_RequestLog_Mobile_Request_PreviousLog_ScreenLog_Screen_PreviousLog_SmsLog_Sms_Previous
Extension_Name Log_ExtensionLog_Extension_Previous

ログエンティティに含まれるこれらの新しいアトリビュートは、OutSystems 11にアップグレード済みのアプリケーションでのみ入力されます。また、ログレコードに保存された情報は、ログが生成された時点のものです。つまり、ログレコードが作成された後にアプリケーション名が「X」から「Y」に変更されても、そのログレコード内のアプリケーション名は「X」のままです。これは、名前ではなくキーアトリビュートを使用しているフィルタには影響を及ぼしません。

ログデータ用に別のデータベースを使用する必要性

ログデータとアプリケーションデータの両方に同じデータベースを使用し続けることもできます。OutSystemsアプリケーションで生成されたログデータに関連する特別な要件がない限り、ログデータとアプリケーションデータは同じデータベース内で共存できます。これは、ユーザーがOutSystems 11にアップグレードするためのデフォルトのアップグレード方法です。

ただし、より厳格なルールやプロセスに従う必要がある場合は、ログデータを別のデータベースに保存することを推奨します。OutSystems 11にアップグレードするユーザーは、次のトピックに示す手順に従ってログデータの分離をうまく利用する必要があります。