10秒ごとにWebサービスにリクエストを送信し、ローカルデータベースでデータを変更したり、その逆を行ったりする同期アプリケーションがあります。便宜上、また論争を解決するために、要求と応答の SOAP メッセージのペアをログに記録したいと考えています。
しかし、私の経験から言うと、SQLite データベースに同じ要求と応答を詰め込み、多くのスペースを必要とします。
より少ないディスク容量で同じレベルのログ詳細化を実現するにはどうすればよいですか? 実際、メッセージ全体をログに記録する利点はありますか? 完全なメッセージの代わりに、パラメーター値を切り取ってログに記録できるのではないでしょうか?
おそらく、メッセージを圧縮する (またはデータの一部を含む完全なメッセージを拡張/取得する) ことができ、より少ないデータを格納できますが、必要な場所にソース メッセージを取得する機能を備えた別のメカニズムがあるでしょうか?
サンプル: リクエスト:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:GetModifiedItems>
<tem:Key>abcdef</tem:Key>
</tem:GetModifiedItems>
</soapenv:Body>
</soapenv:Envelope>
応答:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetModifiedItemsResponse xmlns="http://tempuri.org/">
<GetModifiedItemsResult xmlns:a="http://schemas.datacontract.org/2004/07/Exchange" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Body i:type="a:lst">
<a:List>
<a:BaseItem i:type="a:asd">
<a:ISDELETED i:nil="true"/>
<a:ID>1</a:ID>
<a:SYSUSER>b2</a:SYSUSER>
</a:BaseItem>
<a:BaseItem i:type="a:asd">
<a:ISDELETED i:nil="true"/>
<a:ID>2</a:ID>
<a:SYSUSER>b3</a:SYSUSER>
</a:BaseItem>
</a:List>
</a:Body>
<a:Msg>SUCCESS</a:Msg>
</GetModifiedItemsResult>
</GetModifiedItemsResponse>
</s:Body>
</s:Envelope>