Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

xml som loggfilformat?

1 view
Skip to first unread message

Jarle Aase

unread,
Aug 19, 2005, 11:53:36 PM8/19/05
to
Jeg er fristet til å skrive en logg-modul for ett av programmene mine som
kan logge til xml-format.

Xml er ideelt til dette, bortsett fra en ting, nemlig at en fil må ha enkelt
root-node. En logg er ikke en fil med en fast størelse, men en strøm av
loggeventer. Jeg tenker meg noe ala:

------------------ fil ----------------------
<xml version="1.0">
<logevent>
<type>Notification</type>
<origin>SomeClass::Method()</origin>
<text>Something interesting happend bla bla</text>
</logevent

<logevent>
<type>Notification</type>
<origin>SomeClass::Method()</origin>
<text>Something interesting happend bla bla</text>
</logevent

<logevent>
<type>Notification</type>
<origin>SomeClass::Method()</origin>
<text>Something interesting happend bla bla</text>
</logevent
---------------------------------------------

En slik loggfil kan jo vokse og vokse i det uendelige, og dermed er det
problematisk å omslutte logevent-nodene med en <logfile></logfile>
root-node.

Har noen vært borti problemstillingen?

Jarle
--
Jarle Aase http://www.jgaa.com
mailto:jg...@jgaa.com

<<< no need to argue - just kill'em all! >>>

Lars Haugseth

unread,
Aug 20, 2005, 6:55:46 AM8/20/05
to

* Jarle Aase <jg...@jgaa.com> wrote:
|
| Jeg er fristet til å skrive en logg-modul for ett av programmene mine som
| kan logge til xml-format.
|
| Xml er ideelt til dette, bortsett fra en ting, nemlig at en fil må ha enkelt
| root-node. En logg er ikke en fil med en fast størelse, men en strøm av
| loggeventer.

En mulighet er å ha et wrapper-dokument rundt som bruker XInclude til å
hente inn loggevents fra en egen fil.

En annen mulighet er å se på systemer for å parse XML streams.

--
Lars Haugseth

Gunnar Bjørgum

unread,
Sep 20, 2005, 9:13:03 AM9/20/05
to

Ta ein titt på Log4J. Dette er eit logge API som opprinneleg er for
Java, men porta til andre språk, f.eks perl og C++. Her er det
standardisert eit XML loggeformat. Hvis du bruker dette, kan du og bruke
program for å kikke på og analysere loggar som er meint for Log4j.

http://logging.apache.org/log4j/docs/
http://wiki.apache.org/logging-log4j/Log4jXmlFormat?highlight=%28xml%29

Helsing Gunnar Bjørgum

Thor W Hammer

unread,
Sep 29, 2005, 9:14:59 AM9/29/05
to
> En slik loggfil kan jo vokse og vokse i det uendelige, og dermed er det
> problematisk å omslutte logevent-nodene med en <logfile></logfile>
> root-node.
>
> Har noen vært borti problemstillingen?
Jepp. Du leser inn filen som en streng/stream og bygger xml-dokumentet i
minnet vha node-readers.

Forresten blir filen ganske stor. Hvis du vil spare på plassen kan du bruke
attributter slik:

<logevent type="..." origin="..." text="...."/>
<logevent type="..." origin="..." text="...."/>
<logevent type="..." origin="..." text="...."/>

Når du likevel trikser med formatet ved innlesingen kan du jo egentlig lagre
nodene slik:
t=".." o="..." t=".." \n
t=".." o="..." t=".." \n

Spare på plassen er greit selv i 2005 :-)

Mvh
Twh


Lars Haugseth

unread,
Sep 29, 2005, 9:32:53 AM9/29/05
to

* "Thor W Hammer" <thorw...@hotmail.com> wrote:
|
| > En slik loggfil kan jo vokse og vokse i det uendelige, og dermed er det
| > problematisk å omslutte logevent-nodene med en <logfile></logfile>
| > root-node.
| >
| > Har noen vært borti problemstillingen?
| Jepp. Du leser inn filen som en streng/stream og bygger xml-dokumentet i
| minnet vha node-readers.
|
| Forresten blir filen ganske stor. Hvis du vil spare på plassen kan du bruke
| attributter slik:
|
| <logevent type="..." origin="..." text="...."/>
| <logevent type="..." origin="..." text="...."/>
| <logevent type="..." origin="..." text="...."/>

Jeg tror nok jeg ville ha hatt selve meldingen som et underelement,
ikke som et attributt, med tanke på lesbarhet og håndtering av
spesialtegn i meldingen.

--
Lars Haugseth

Thor W Hammer

unread,
Sep 29, 2005, 12:38:44 PM9/29/05
to
>> <logevent type="..." origin="..." text="...."/>
>> <logevent type="..." origin="..." text="...."/>
>> <logevent type="..." origin="..." text="...."/>
>Lars Haugseth:

>Jeg tror nok jeg ville ha hatt selve meldingen som et underelement,
>ikke som et attributt, med tanke på lesbarhet og håndtering av
>spesialtegn i meldingen.

For the første blir blir teksten i atributtene "escapet" hvis man bruker et
standard xml dokument-objekt, så spesialtegnene trengs ikke gjøres noe med.

For det andre så er ikke XML laget for at mennesker skal kunne lese dataene.
Poenget er at dataene skal kunne transformeres til et format som kan leses
av mennesker.

Twh


0 new messages