2

現在のプロジェクトの XML 出力を使用してロガー/バグ トラッカーを作成したいと考えています。重複している場合は申し訳ありませんが、提案は役に立ちませんでしたし、Googleの良い解決策も見つかりませんでした.

1: 私の最初の質問は、例外の安全性についてです。

XmlDocument を使用すると、save を呼び出すまでログがメモリに保存されます。つまり、例外が発生した場合、すべてを失う可能性があります。

XmlWriter を使用する場合、それはメモリに保存されませんが (afaik)、ライターとすべての要素/ノードを閉じる必要があります。これは、例外が発生した場合にも欠落している可能性があります。ライターを閉じて再度開くことはできますか (ドキュメントの最後にポインターを置いて) ?

例外セーフな XML 作成のための最適なソリューションは何ですか? (ヒントだけ欲しい)

2: 2 番目の質問は、メモリ使用量についてです。

これはトレース ツールであるため、出力が非常に大きくなる可能性があります。したがって、XmlDocument を使用できません。私の意見では、XmlWriter がこれに最適なソリューションです。私はこれで正しいですか?

3: 最後の [マイナーな] 質問は、時間の消費についてです。

トレースに XML ファイルを使用することは良い考えですか、それとも悪い考えですか? プログラムの速度はどのくらい遅くなりますか?

あなたが私を助けてくれることを願っています。

編集: なぜ XML を使いたいのですか? 後で、私のアプリは「不明な」環境で実行されるため、インターネット経由でログをサーバーに送信できる必要があり、ファイル (XMLSchema) を検証する必要があります。これが完了したら、それをより読みやすい(そして適切にフォーマットされた)HTMLファイルに変換したいと思います。

私のHTMLファイル

ご覧のとおり、これは XML よりもはるかに優れた視覚化です (これにはまだ微調整が必​​要ですが、機能しています)。

編集 2: 現在の状態 メモリ使用量を測定しました。Logger (現在 XmlDocument :( に基づいています) は、5.000.000 エントリに対して ~600MB 必要です。最高の結果ではありませんが、最悪の結果でもありません。

よろしくアレックス

4

3 に答える 3

1

トレース ファイルの場合、XML の構造は必要ですか。ファイルが作成された後のファイルの計画は? 純粋に人間による処理の場合、テキスト ファイルで十分でしょうか? そうすれば、書き込みごとにフラッシュできます。よりクエリ可能なファイル形式が必要な場合は、軽い DB エンジンを組み込むことができますか? MDAC が変更され、MSAccess ファイル アクセスに関する 64 ビットの問題が発生する前は、mdb ファイルに書き込んでいました。最近では、SQLite と VistaDB のように見えました。

XML を選択した特定の理由はありますか?

于 2013-08-23T00:12:40.757 に答える
0

この質問には良い答えが含まれていなかったので、私は自分で答えなければなりません。ログに 10,000 エントリのリングバッファを使用することを決定し (これは実際の使用では適切な数のようです)、スレッドと例外セーフな logbuf を構築しようとしました (うまくいくことを願っています)。

よろしくお願いします。すべての回答にthx

アレックス

于 2013-09-18T18:54:55.387 に答える
-1

独自のロギング ソリューションを導入する必要があるのはなぜですか? 「箱から出して」それを行うことができる非常に成熟したライブラリがあります。

于 2013-08-23T07:09:55.310 に答える