「メッセージ」の代わりに CJSON::encoded 配列を受け入れるカスタム DbLogRoute があります。データはデコードされ、適切な場所などに配置されます。その部分は正常に機能します。
YII_DEBUG を true に設定すると問題が発生します。
何らかの理由で、エンコードされたデータにデバッグ情報が追加され、JSON としてデコードできなくなりました。例:
{"message":"Success","execution":84,"filename":"test.xml"}
in /projectdir/www/protected/components/CustomApplicationComponent.php (39)
in /projectdir/www/protected/components/ImportFile.php (750)
in /projectdir/www/protected/components/CustomApplicationComponent.php (75)
これを取り除く唯一の方法は、YII_DEBUG の設定を解除することですが、時々必要になるので、それがこの問題の最善の解決策であるとは思えません。
コードの多くを示すことはできませんが、実装はhttp://www.yiiframework.com/wiki/521/log-activity-in-database/#c14224に基づいています が、外部キーとインデックスのサポートも追加しましたログテーブル。
この痕跡がどこに入り、どのようにそれを抑制するかを理解するのに役立つ賢い頭脳が必要です!