これらの改善により、デバッグログが改善されました。

Deeplからの自動翻訳

4D開発者として、あなたはすでに問題のトラブルシューティングのためにデバッグログを有効にしたことがあるかもしれません。4D v17 R5では、現在のプロセスのみをログし、メンバーメソッド(コレクションまたはオブジェクトメソッド)の呼び出しをログするなど、これらのファイルを分析するのに役立ついくつかの改良が導入されています。

プロセスロギング用の新しいセレクタ

コマンドは、新しいセレクタを受け入れるようになりました。 SET DATABASE PARAMETERコマンドは新しいセレクタ、Current process debug log recordingを受け入れるようになりました。プロセスの任意の部分から呼び出すと、現在のプロセスのログを開始し、4D logs フォルダに“4DDebugLog_pX_Y.txt”ファイルを作成します (X はプロセスの PUID、Y はシーケンスファイル番号です)。もちろん、この新しいセレクタを使用して、Get database parameter コマンドでプロセスデバッグログの状態を取得することもできます。

SET DATABASE PARAMETER(Current process debug log recording;2+4+8)

によって記録されるプロセスを除く、すべてのプロセスの活動のログを記録するために、Debug log recording セレクタを 使用し続けることができます。 Current process debug log recording.

注意: このコードの行を使用すると、簡単にデバッグログにアクセスすることができます。

SHOW ON DISK(Get 4D folder(Logs folder))

以下のスクリーンショットでは、5つのプロセスによって生成されたログを見ることができます。

SET DATABASE PARAMETER はスレッドセーフではないので、プロセスは協調モードで開始されることに留意してください。

メンバーメソッド ロギング

デフォルトで、デバッグ・ログにはメンバー・メソッドの呼び出しが含まれるようになりました。これらはコマンドタイプ番号 9 でログに記録されます。メンバー・メソッドを含めたくない場合は SET DATABASE PARAMETERコマンドとDebug log recording またはCurrent process debug log recording セレクタを、値 32 を持つ新しいオプションで呼び出します。この オプションを組み合わせることで、必要なデバッグログを取得することができます。

この例では、WiFiとEthernetのインターフェースを別々のコレクションでログに記録する方法を示しています。

SET DATABASE PARAMETER

SET DATABASE PARAMETER(Current process debug log recording;2+4+8)
C_COLLECTION ($_networkInterfaces;$_ethernet;$_wifi)
$_networkInterfaces:=Get system info.networkInterfaces$_ethernet :=$_networkInterfaces.query("type = :1"; "ethernet")$_wifi:=$_networkInterfaces.query("type = :1"; "wifi")
Current process debug log recording ;0 )

コードが返されます。

blank

より高いセキュリティ

以前は、ログを起動すると、利用可能なディスク容量がなくなるまでファイルが生成されました。4Dサーバーの管理画面でのエラーや偶発的な起動を避けるため、生成されるファイルの数はデフォルトで50に制限されています(危険な場合があります)。この制限を変更するには SET DATABASE PARAMETERコマンドとCircular log limitation セレクターで変更できます。

// Limit the number of logs files to 100 (the default number is set to 50)
SET DATABASE PARAMETER(Circular log limitation;100)

Avatar
- プロダクトオーナー - Damien Fuzeauは、2019年2月に4D Productチームに参加しました。プロダクトオーナーとして、ユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換することを担当しています。また、実装された機能が顧客のニーズを満たしているかどうかを確認することも彼の役割です。ナント大学のソフトウェア工学科を卒業。前職の会社では最初は開発者として(1997年に4Dを発見)、後にエンジニアリングマネージャーとソフトウェアアーキテクトとして、23年以上勤務しました。この会社は、4DのOEMパートナーであり、現在は数千のユーザーと数百のサーバーに向けて4Dベースのビジネスソフトを展開しています。ですから、Damienは、多言語環境での4D開発・導入に慣れています。