Scalaで単純なWebサーバーを作成していて、イベントログをXMLファイルに実装しようとしています。したがって、XML構造は次のようになります。
<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を書き込もうとしています。
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)
ただし、ファイルをチェックすると、最新のものだけが存在し、サーバーの実行中にファイルを更新すると、各イベントがファイルの最後のイベントに置き換わることが示されます。
またFileOutputStream
、追加を有効にしてを使用してみましXML.write
たが、各イベントの前にXMLスキーマが挿入され、適切なXMLファイルとして認識されなくなりました。また、<log>
すべてのイベントの周りにルートタグを追加します。
私が考えることができる唯一の方法は、ファイルに現在のXMLをロードし、それに追加してから書き戻すことです。これは私にはかなり非効率的です。
欠落しているファイルにXMLを追加する簡単な方法はありますか?助けていただければ幸いです:)