2010-06-15 4 views
0

Je travaille sur un système de journalisation pour mon moteur 2D, et je suis confus sur la façon dont je devrais créer/éditer le fichier, et comment je devrais produire ce fichier. J'ai appris que XML est plus un support de données plutôt qu'un afficheur de données comme le HTML l'est. J'ai lu que je peux utiliser des convertisseurs XML en HTML. Une méthode à laquelle j'ai pensé consiste à écrire des caractères dans un fichier en HTML.C++ Logger-Dois-je utiliser un analyseur xml ordinaire?

La clarté sur ces questions est ce que je vous demande, débordement de pile.

+0

Merci pour l'information les gars, je l'apprécie vraiment. Vous avez mis beaucoup de choses droites, pensez à répondre à cette question. – Jonathon

Répondre

1

À peu près tous les journaux avec lesquels j'ai travaillé ont été du texte pur délimité par des retours à la ligne. Si vous partez de cette situation, vous pouvez vous demander ce que vous voulez accomplir avec le balisage.

Si vous devez suivre la voie du balisage, je suggérerais un format XML qui contient un ensemble minimal de balisage qui serait utile dans votre situation. Vous pouvez utiliser XML pour capturer la structure dans vos entrées de journal (horodatage, gravité et code opérationnel, par exemple), ce qui serait incommode à coder en HTML.

Notez que vous pouvez également utiliser hybride et intégrer des balises XHTML dans un élément XML dont le but est de capturer du texte affichable, si vous le souhaitez.

1

La création d'un fichier XML (ou HTML) n'a pas besoin de bibliothèque spéciale. concaténation de chaîne simple est généralement assez bon, vous pouvez devoir encoder certains caractères spéciaux (par exemple > dans >.

Mais comme le dit Owen, le texte brut est un journal plus commun pour les fichiers journaux. Un compromis raisonnable est des valeurs séparées par des virgules dans un fichier texte, cela vous donne un peu de structure sans beaucoup de frais: par exemple, le serveur web Windows (IIS) utilise ce format par défaut, et si vous avez des champs qui sont sortis pour chaque ligne comme timestamp ou source nom de fichier et le numéro de la ligne, ce qui rend facile de séparer les à nouveau.

+0

"[...] le texte en clair est un journal plus commun [...]" C'est un bon! – sbi

+0

Je suppose que parfois les fautes de frappe fonctionnent. Ce n'était pas intentionnel cependant. –

1

Si vous envisagez d'écrire des journaux dans des fichiers XML, s'il vous plaît, arrêtez.

Les fichiers journaux doivent être de simples fichiers texte en clair, XML-isant introduit une complexité inutile. Ce ne sont pas des données structurées, elles sont destinées à être lues par des personnes, pas des outils automatisés.

Tout commence par les journaux XML, and then it goes downhill from there.

1

Le problème avec les fichiers XML ou HTML est que vous ne pouvez pas ajouter à tout moment. Vous devez fermer correctement l'étiquette finale (étiquette de document) à la fin de l'écriture.

Par conséquent, ce n'est pas un format populaire pour la journalisation. Pour la journalisation, je suggère d'utiliser l'un des moteurs de journalisation existants, tels que Apache logger, ou, le candidat du journal de relance de John Torjo. Ils prendront en charge les niveaux de journalisation, la configuration d'exécution, etc.

+0

J'ai écrit de petits outils jetables qui analysaient des fichiers journaux textuels et créaient de jolies sorties HTML codées par couleur (une couleur pour un identificateur de thread) afin de comprendre les problèmes de MT. Mais, oui, les journaux doivent être écrits en texte brut. – sbi