私はScalaでシンプルなWebサーバーを作成していますが、XMLファイルへのイベントログを実装しようとしています。 XMLの構造は、このようです:そこに私は最新のファイルをチェックインするときScala - XMLをファイルに追加する
var logEvent =
<log>
<event>
<type>ERROR</type>
<description>The Requested File was not found</description>
<file>{path}</file>
<ip>{connection.getRemoteSocketAddress}</ip>
<time>{new Date(System.currentTimeMillis)}</time>
</event>
</log>
XML.save(logFile, logEvent, "UTF-8", true, null)
しかし偶数で、ファイルを更新:
<log>
<event>
<type>Info/Warning/Error/etc</type>
<description>File not found etc</description>
<file>/etc/etc.etc</file>
<ip>1.2.3.4</ip>
<time>12:34:56 1st Jan 2012</time>
</event>
<event>
etc...
<event>
</log>
は現在、このようなファイルにXMLを書き込もうとイムサーバが実行されている間、各イベントはファイル内の最後のイベントを置き換えます。
また、XML.write
と一緒に有効にすることができますが、各イベントの前にXMLスキーマが挿入され、適切なXMLファイルとして認識されなくなりました。また、すべてのイベントにルート<log>
タグを追加します。
私が考えることができる唯一の方法は、現在のXMLをファイルに読み込んで追加してから、それを書き直して、どちらかというと私には効率が悪いようです。
XMLが不足しているファイルに追加する簡単な方法はありますか?不足しているトップレベルのコンテナがあるので すべてのヘルプは感謝:)