Pourquoi la plupart des fichiers journaux utilisent-ils du texte brut plutôt qu'un format binaire?

81

La journalisation est quelque chose qui est nécessaire mais qui est (relativement) rarement utilisée. En tant que tel, il peut être rendu beaucoup plus compact en termes de stockage.

Par exemple, les données les plus communément enregistrées, telles que ip, date, heure et d’autres données pouvant être représentées sous forme d’entier, sont stockées sous forme de texte.

Si la journalisation était stockée sous forme de données binaires, une grande quantité d’espace pourrait être préservée, ce qui nécessiterait moins de rotation et augmenterait la durée de vie du disque, en particulier avec les disques SSD où les écritures sont limitées.

Certains diront peut-être que c'est un problème tellement mineur que cela n'a pas vraiment d'importance, mais compte tenu des efforts nécessaires pour mettre en place un tel mécanisme, cela n'a aucun sens de ne pas le faire. N'importe qui peut faire ça pendant deux jours dans son temps libre, pourquoi les gens ne le font-ils pas?

php_nub_qq
la source
20
Je conteste votre affirmation selon laquelle les gens ne font pas cela. Beaucoup le font. Certains non, bien sûr, mais beaucoup le font.
Servy
44
> Si la journalisation était stockée sous forme de données binaires, une grande partie de l'espace pourrait être préservée. Les anciens journaux sont généralement compressés.
leonbloy
89
Lire un journal texte sur une machine qui est à moitié cassée peut être un énorme avantage par rapport à la nécessité de l’analyser en binaire.
tofro
23
Après des mois de modifications pour que l'algorithme soit exécuté correctement sur le grand cluster, nous ne pouvions toujours pas obtenir un gain de performances considérable, mais lorsque nous avons modifié le stockage des fichiers journaux dans des fichiers binaires? Sainte vache, nous n’avons jamais osé rêver que la performance pouvait être à ce niveau. À quel point ce genre d'histoire est-il plausible?
null

Réponses:

163

systemdcélèbre stocke ses fichiers journaux au format binaire. Les principaux problèmes que j'ai entendus sont les suivants:

  1. si le journal est corrompu, il est difficile à récupérer car il nécessite des outils spécialisés
  2. ils ne sont pas lisibles par l' homme, de sorte que vous ne pouvez pas utiliser des outils standards tels que vi, grep, tailetc pour les analyser

La principale raison d'utiliser un format binaire (à ma connaissance) était qu'il était jugé plus facile de créer des index, etc. c'est-à-dire de le traiter davantage comme un fichier de base de données.

Je dirais que l'avantage d'espace disque est relativement faible (et en diminution) en pratique. Si vous souhaitez stocker de grandes quantités de journalisation, il est très efficace de compresser les journaux roulés.

Dans l’ensemble, les avantages de l’outillage et de la familiarité pèseraient probablement du côté de la journalisation de texte dans la plupart des cas.

Alex
la source
3
Bon point. Je pensais immédiatement à systemd aussi. La partie encore plus importante ici est que votre application n'a pas besoin de savoir comment les données de journal sont stockées. Il peut être fourni en tant que service système.
5gon12eder
97
"célèbre", plutôt "infâme"
Whatsisname
4
pf (pare-feu) se connecte également en binaire, en particulier au format tcpdump
Neil McGuigan
3
@Hatshepsut Rolled Logs: la sortie du journal écrit dans un fichier, disons myapp.logjusqu'à minuit, puis se déplace vers ce fichier myapp.log.1et commence à écrire dans un nouveau myapp.logfichier. Et les anciens myapp.log.1sont déplacés vers myapp.log.2, et ainsi de suite, ils roulent tous ensemble. Ainsi, myapp.logest toujours l'actuel. Ou ils peuvent basculer lorsqu'une certaine taille est atteinte. Peut-être qu'ils ont mis la date / heure dans le nom du fichier. De nombreux frameworks de journalisation supportent ce genre de choses immédiatement.
SusanW
13
@ Hatchepsut Le terme rotatingest également utilisé d'après ce que je sais.
George D
89

Pourquoi la plupart des fichiers journaux utilisent-ils du texte brut plutôt qu'un format binaire?

Recherchez le mot "texte" dans l'article Wikipedia sur la philosophie Unix , par exemple, vous trouverez des énoncés tels que:

McIlroy, alors chef du Centre de recherche en sciences informatiques (CSRC) des Bell Labs et inventeur du tuyau Unix [9], a résumé la philosophie Unix de la manière suivante: [10]

C’est la philosophie Unix: écrire des programmes qui font une chose et le font bien. Écrire des programmes pour travailler ensemble. Ecrivez des programmes pour gérer les flux de texte, car c'est une interface universelle.

Ou par exemple, à partir des bases de la philosophie Unix ,

Règle de composition: Les programmes de conception doivent être connectés à d'autres programmes.

Il est difficile d'éviter de programmer des monolithes trop compliqués si aucun de vos programmes ne peut se parler.

La tradition Unix encourage fortement l’écriture de programmes qui lisent et écrivent des formats simples, textuels, orientés flux, indépendants du périphérique. Sous Unix classique, autant de programmes que possible sont écrits sous forme de filtres simples, qui prennent un simple flux de texte en entrée et le traitent en un autre flux de texte simple en sortie.

Malgré la mythologie populaire, cette pratique n’est pas privilégiée, car les programmeurs Unix détestent les interfaces utilisateur graphiques. C'est parce que si vous n'écrivez pas de programmes acceptant et émettant de simples flux de texte, il est beaucoup plus difficile de les lier ensemble.

Les flux de texte sont destinés aux outils Unix comme les messages aux objets dans un paramètre orienté objet. La simplicité de l'interface de flux de texte impose l'encapsulation des outils. Des formes plus élaborées de communication inter-processus, telles que les appels de procédure à distance, montrent une tendance à impliquer trop les programmes avec les internes des autres.

N'importe qui peut faire ça pendant deux jours dans son temps libre, pourquoi les gens ne le font-ils pas?

Stocker le fichier journal en binaire n'est que le début (et trivial). Vous devez ensuite écrire des outils pour:

  • Afficher tout le fichier journal ( edit)
  • Affiche la fin du journal sans en lire le début ( tail -f)
  • Rechercher des éléments dans le fichier ( grep)
  • Filtre pour afficher uniquement les éléments sélectionnés / intéressants (en utilisant une expression de filtre arbitrairement compliquée)
  • Envoyez le journal par courrier électronique à quelqu'un qui n'a pas votre logiciel log-file-decoder-software
  • Copier-coller un fragment du fichier journal
  • Lire le fichier journal pendant que le programme (qui crée le fichier journal) est en cours de développement et de débogage
  • Lisez les fichiers journaux des anciennes versions du logiciel (qui sont déployés sur les sites clients et en cours d'exécution).

Bien entendu, les logiciels peuvent également utiliser des formats de fichiers binaires (par exemple, pour des bases de données relationnelles), mais cela n’en vaut pas la peine (au sens de YAGNI ), et ne vaut généralement pas la peine d’être utilisé pour les fichiers journaux.

ChrisW
la source
24
N'oubliez pas la documentation! J'ai écrit un enregistreur de messages binaires pour un système il y a quelques années, qui enregistrait les demandes entrantes de régression / relecture. Maintenant, la seule façon de comprendre ces fichiers est de regarder le code qui les lit / écrit, mais d’autres équipes les utilisent et posent des questions à leur sujet. Des choses horribles.
SusanW
2
Pour être honnête, le stockage de votre journal dans une base de données SQLite, associé à des outils de requête de base pour la lecture, fournirait toutes les fonctionnalités que vous mentionnez immédiatement. ;)
jpmc26
3
@ jpmc26 Oui, vous pouvez lire le fichier journal aussi longtemps que vous le pouvez, le convertir en un format texte ...
ChrisW
1
comme indiqué dans d'autres commentaires: les fichiers texte pourraient être compressés facilement et efficacement. Mais la compression n'a pas besoin d'être dans les "données". La compression pourrait être effectuée dans le système de fichiers. vous pouvez donc utiliser le texte brut pour tous les outils et ne pas gaspiller d’espace disque.
Bernd Wilke pour
2
@ JefréN. Si tail -fj'exécute un fichier journal de plusieurs gigaoctets, il passe à la fin du fichier (en utilisant "chercher" sans "lire"), puis lit et affiche uniquement la fin du fichier. Il n'est pas nécessaire de décompresser / décoder le fichier entier.
ChrisW
49

Il y a beaucoup de présomptions discutables ici.

L’exploitation forestière fait partie intégrante (presque) de tous les emplois que j’ai occupés. C'est essentiel si vous voulez une visibilité quelconque sur la santé de vos applications. Je doute que ce soit un usage "marginal"; la plupart des organisations auxquelles j'ai participé considèrent que les journaux sont très importants.

Stocker les journaux sous forme binaire signifie que vous devez les décoder avant de pouvoir les lire. Les journaux de texte ont la vertu de la simplicité et de la facilité d'utilisation. Si vous envisagez la route binaire, vous pouvez également stocker les journaux dans une base de données, où vous pouvez les interroger et les analyser statistiquement.

Les disques SSD sont plus fiables que les disques durs de nos jours, et les arguments contre de nombreuses écritures sont en grande partie théoriques. Si cela vous inquiète vraiment, stockez vos journaux sur un disque dur ordinaire.

Robert Harvey
la source
19
"Vous pouvez également stocker des journaux dans une base de données, où vous pouvez les interroger et les analyser de manière statistique." Lors d'un travail précédent, nous avions un outil personnalisé qui importait nos journaux (basés sur du texte) dans une base de données à cette fin.
Mason Wheeler
5
Ce que l’on entend par «SSD où les écritures sont limitées», c’est le fait que les cycles d’écriture / effacement des disques SSD sont limités et que trop écrire sur un secteur réduit la durée de vie du périphérique. Elle ne voulait pas dire que les écrits sont perdus.
Tulains Córdova
4
@ TulainsCórdova: Oui, je savais ce qu'elle voulait dire.
Robert Harvey
2
@ DocSalvager: Je n'ai pas affirmé le contraire.
Robert Harvey
2
@ TulainsCórdova - les limites des cycles d'écriture SSD sont généralement très élevées de nos jours. Même les disques SSD grand public peu onéreux bénéficient des garanties du fabricant sur les cycles d’écriture qui atteignent des centaines de fois la taille de l’appareil, ainsi que des MTBF qui vous permettent d’écrire des milliers de fois la capacité de l’appareil. Et dans un environnement commercial, vous devriez utiliser des périphériques haut de gamme avec des limites de cycle d'écriture beaucoup plus grandes et les remplacer au moins tous les 5 ans. Ainsi, à moins d'écrire plus de 10% de la capacité de stockage par jour, je ne pense pas il y a quelque chose à craindre.
Jules
36

Les fichiers journaux sont une partie essentielle de toute application sérieuse: si la journalisation dans l'application est bonne, ils vous permettent de voir quels événements clés sont survenus et quand; quelles erreurs se sont produites; et l’intégrité générale de l’application qui va au-delà de ce que la surveillance a été conçue. Il est courant d’entendre parler d’un problème, de vérifier les diagnostics intégrés de l’application (ouvrez sa console Web ou d’utiliser un outil de diagnostic tel que JMX), puis de vérifier la configuration. les fichiers journaux.

Si vous utilisez un format autre que texte, vous vous trouvez immédiatement face à un obstacle: comment lire les journaux binaires? Avec l'outil de lecture de journaux, qui n'est pas sur vos serveurs de production! Ou alors, mais oh mon Dieu, nous avons ajouté un nouveau champ et voici l'ancien lecteur. N'avons-nous pas testé cela? Oui, mais personne ne l'a déployé ici. Pendant ce temps, votre écran commence à s'allumer et les utilisateurs vous envoient une requête ping.

Ou peut-être que ce n'est pas votre application, mais vous apportez un soutien et vous pensez savoir que c'est cet autre système, et WTF? les journaux sont au format binaire? Ok, commencez à lire les pages du wiki et par où commencez-vous? Maintenant, je les ai copiées sur mon ordinateur local, mais - elles sont corrompues? Ai-je fait une sorte de transfert non binaire? Ou bien l'outil de lecture de journaux est-il foiré?

En bref, les outils de lecture de texte sont multi-plateformes et omniprésents, et les journaux ont souvent une longue durée de vie et doivent parfois être lus rapidement . Si vous inventez un format binaire, vous êtes coupé de tout un monde d'outils bien compris et faciles à utiliser. Perte sérieuse de fonctionnalité au moment où vous en avez besoin.

La plupart des environnements de journalisation trouvent un compromis: garder les journaux actuels lisibles et présents, et compresser les plus anciens. Cela signifie que vous bénéficiez de la compression, d'autant plus qu'un format binaire ne réduirait pas les messages du journal. Dans le même temps, vous pouvez utiliser less et grep , etc.

Alors, quels sont les avantages possibles de l’utilisation du binaire? Une petite quantité d'efficacité de l'espace - de plus en plus sans importance. Moins (ou plus petit) écrit? En fait, le nombre d'écritures dépendra du nombre de validations de disque. Par conséquent, si les lignes de journal sont nettement plus petites que la taille du bloc de disque, un disque SSD affectera de nouveaux blocs de toute façon. Donc, le binaire est un choix approprié si:

  • vous écrivez d'énormes quantités de données structurées
  • les journaux doivent être créés particulièrement rapidement
  • il est peu probable que vous ayez besoin de les analyser dans des "conditions d'assistance"

mais cela ressemble moins à la journalisation d'application; ce sont des fichiers de sortie ou des enregistrements d'activité. Les mettre dans un fichier ne représente probablement qu'une étape de leur écriture dans une base de données.

MODIFIER

Je pense qu'il y a une confusion générale entre "journaux de programme" (selon les cadres de journalisation) et "enregistrements" (comme dans les journaux d'accès, les enregistrements de connexion, etc.). Je soupçonne que la question se rapporte le plus étroitement à la dernière, et dans ce cas la question est beaucoup moins bien définie. Il est parfaitement acceptable qu'un enregistrement de message ou un journal d'activité soit dans un format compact, d'autant plus qu'il est susceptible d'être bien défini et utilisé pour l'analyse plutôt que pour le dépannage. Les outils qui font cela incluent tcpdumpet le moniteur système Unix sar. Les journaux de programme, d’autre part, ont tendance à être beaucoup plus ponctuels.

SusanW
la source
1
Même Unix /var/log/utmp/ wtmp sont binaires . Ils enregistrent qui est actuellement connecté sur quel tty (donc ils ne font pas que grandir), mais ils constituent une forme de journalisation. (Et il est utile de pouvoir les analyser à moindre coût, car diverses commandes communes whofont exactement cela.)
Peter Cordes
1
@PeterCordes Très vrai. Encore une fois, des données bien définies. enregistrements structurés. Et bien sûr, la vitesse et la taille à toutes les échelles étaient des considérations essentielles à l'époque.
SusanW
9

Un exemple de journal quelque peu binaire est très répandu: le journal des événements Windows. Du côté des professionnels, cela permet aux messages de journalisation d’être assez verbeux (et donc utiles, espérons-le) à un coût pratiquement nul, peut-être quelque chose comme:

Avertissement: La file d'attente à faire a augmenté de 517 éléments au cours des 90 dernières secondes. Si cela se produit environ une fois par jour, il n'y a rien à craindre. Si cela se produit plus souvent ou en succession rapide, vous pouvez vérifier la quantité de RAM disponible pour l'application foobar. Si cela se produit en même temps que l'événement 12345, vous semblez utiliser une base de données obsolète et il est préférable d'appeler le support technique au + 1-555-12345 afin d'éviter toute perte de données.

La partie principale de ce message n'existe qu'une seule fois en tant que ressource installée avec l'application. Toutefois, si cette ressource n’est pas installée correctement (par exemple, car une version plus récente a été installée et ne prend plus en charge ce message obsolète).

Dunno, quelque chose avec "517" et "90".

et plus utile en aucune façon.

Hagen von Eitzen
la source
9
Sans compter que trouver quelque chose dans le journal des événements Windows peut être un cauchemar. Cela me fait certainement envie d'un simple fichier texte.
Michael Hampton
4
Attendez. Voulez-vous voir deux (ou plus) entrées de journal simultanément? Et bien c'est dommage.
Eric Towers
2
Ma réponse allait être "Journaux des événements Windows, assez dit."
Craig
Mon expérience des ressources manquantes pour l'Observateur d' événements a été avec des outils qui n'ont des ressources à installer, mais dans ce cas, AFAIR, il y a encore une ligne d'information réelle du programme de déclaration, au fond, après la fin de Windows son ' la ressource peut être manquante ou corrompue "spiel.
underscore_d
5

Les deux questions principales que vous voudriez poser avant de choisir entre texte et binaire sont les suivantes:

  • Qui est mon public?
  • Quel contenu dois-je transmettre?

L’opinion commune est que l’audience d’un message de log est un être humain. Ce n’est évidemment pas une hypothèse parfaite, car il existe de nombreux scripts d’exploration de journaux, mais c’est un script courant. Dans ce cas, il est logique de transmettre les informations sur un support avec lequel les humains sont à l'aise. Le texte est une tradition de longue date.

En ce qui concerne le contenu, considérez qu'un journal binaire doit avoir un format bien défini. Le format doit être suffisamment défini pour que d’autres personnes puissent écrire un logiciel qui fonctionne sur ces journaux. Certains journaux sont assez bien structurés (votre question en énumère plusieurs). D'autres journaux ont besoin de pouvoir transmettre le contenu dans une forme de langage naturel moins bien définie. De tels cas de langage naturel sont une mauvaise correspondance pour les formats binaires.

Pour les journaux qui pourraient être bien décrits en binaire, vous devez faire un choix. Parce que le texte fonctionne pour tout le monde, il est souvent considéré comme le choix par défaut. Si vous enregistrez vos résultats sous forme de texte, les utilisateurs peuvent utiliser vos journaux. Cela a été prouvé des milliers de fois. Les fichiers binaires sont plus difficiles. En conséquence, il est possible que les développeurs produisent du texte simplement parce que tout le monde sait à quoi cela va ressembler.

Cort Ammon
la source
5

TL; DR: La taille n'a pas vraiment d'importance, mais la facilité d'utilisation l'est

Tout d'abord, si la comparaison des avantages respectifs des formats texte et binaire pour le stockage de journaux à court terme est une question importante, la taille importe peu. Les deux raisons à cela sont:

  1. Les journaux sont des informations hautement redondantes qui compresseront très bien: selon mon expérience, il n'est pas rare de voir des fichiers journaux compressés dont la taille est égale ou inférieure à 5% à celle du fichier d'origine. Par conséquent, l'utilisation d'un format texte ou binaire ne devrait avoir aucun impact mesurable sur le stockage à long terme des journaux.

  2. Quel que soit le format choisi, les journaux rempliront rapidement un disque serveur si nous n’implémentons pas de «collecteur de fichiers journaux» qui compresse et envoie les fichiers journaux à une plate-forme de stockage à long terme. L'utilisation d'un format binaire pourrait ralentir un peu ce processus, mais même un changement d'un facteur 10 importerait peu.

Formats texte et journal binaire

La promesse des systèmes Unix est que, si nous apprenons à utiliser l'ensemble d'outils standard pour travailler sur des fichiers texte structurés en lignes (telles que grep , trier , rejoindre , sed et awk) , nous pourrons les utiliser pour assembler rapidement des prototypes exécutant n'importe quel travail. nous voulons, quoique lentement et grossièrement. Une fois que le prototype a démontré son utilité, nous pouvons choisir de le transformer en un logiciel réellement conçu pour améliorer les performances ou ajouter d’autres fonctionnalités utiles. C'est, du moins à mon sens, l'essence de la philosophie Unix.

En d'autres termes, si nous devons probablement effectuer des traitements et des analyses que nous ne pouvons pas comprendre aujourd'hui, si nous ne savons pas qui doit mettre en œuvre cette analyse, etc., nous en sommes au stade où les prototypes devraient être utilisés et les formats de texte adaptés. les journaux sont probablement optimaux. Si nous devons effectuer de manière répétée un petit ensemble de traitements bien identifiés, nous devons alors concevoir un système logiciel pérenne pour effectuer cette analyse et des formats binaires ou structurés pour les journaux, tels que les bases de données relationnelles, optimale.

(Il y a quelque temps, j'ai écrit un article sur ce blog .)

Michael Le Barbier Grünewald
la source
4

Les fichiers journaux sont au format texte car ils peuvent être facilement lus à l'aide de n'importe quel éditeur de texte ou en affichant le contenu via la commande de la console.

Cependant, certains fichiers journaux sont au format binaire s'il y a beaucoup de données. Par exemple, le produit sur lequel je travaille stocke un maximum de 15 000 enregistrements. Afin de stocker les enregistrements dans le moins de place possible, ils sont stockés en binaire. Cependant, une application spéciale doit être écrite pour afficher les enregistrements ou les convertir en un format pouvant être utilisé (par exemple, des feuilles de calcul).

En résumé, tous les fichiers journaux ne sont pas au format texte. Le format textuel présente l'avantage que les outils personnalisés ne sont pas nécessaires pour afficher le contenu. Lorsqu'il y a beaucoup de données, le fichier peut être au format binaire . Le format binaire nécessitera une application (personnalisée) pour lire les données et les afficher dans un format lisible par l'homme. Plus de données peuvent être regroupées dans un format binaire. Utiliser le format texte ou le format binaire est une décision qui repose sur la quantité de données et la facilité de visualisation du contenu.

Thomas Matthews
la source
3

Dans les systèmes embarqués où je n'ai peut-être pas de canal de sortie disponible au moment de l'exécution, l'application ne peut pas supporter la rapidité de frappe imposée par la journalisation, sinon la journalisation modifierait ou masquerait l'effet que j'essayais d'enregistrer. recourent à l’impression de données binaires dans un tableau ou à un tampon en anneau, soit en les imprimant à la fin de l’exécution du test, soit en les vidant brutes et en écrivant un interpréteur pour les imprimer lisibles. Quoi qu'il en soit, je veux me retrouver avec des données lisibles.

Dans les systèmes avec plus de ressources, pourquoi inventer des schémas pour optimiser ce qui n’a pas besoin d’être optimisé?

JRobert
la source
1
De même, lorsque vous essayez de vous connecter en temps réel depuis un périphérique intégré à un PC via un port série à 9 600 bauds, il est souvent conseillé de compresser les données ou d'utiliser un format binaire pour éviter les débordements.
Mawg
3

Les fichiers journaux sont destinés à faciliter le débogage des problèmes. Généralement, l’espace disque dur est beaucoup moins cher que le temps d’ingénierie. Les fichiers journaux utilisent du texte car il existe de nombreux outils pour travailler avec le texte (tels que tail -f). Même HTTP utilise du texte brut (voyez aussi pourquoi nous n'envoyons pas de binaire plutôt que du texte sur http ).

En outre, il est moins coûteux de développer un système de journalisation en texte brut et de vérifier son fonctionnement, de le déboguer plus facilement en cas de problème et de récupérer les informations utiles au cas où le système échouerait et corromprait une partie du journal.

Casey Kuball
la source
2
Comme il a été mis en place par quelqu'un d'autre, je voulais préciser que HTTP / 2 (attention!) Permet des communications binaires, bidirectionnelles et multiplexées. Tous les développeurs qui s’imaginent élites devraient aller vite l’apprendre et se demander pourquoi cela n’était pas arrivé plus tôt.
Shaun Wilson
3

Un fichier texte corrompu est toujours lisible autour de la partie corrompue. Un fichier binaire corrompu peut être restauré, mais peut-être pas. Même s'il est restaurable, cela nécessiterait un peu plus de travail. L'autre raison est qu'un format de journalisation binaire rend moins probable la création d'une "solution temporaire" (c'est-à-dire "la plus permanente de toutes les corrections"), mais la solution de journalisation sera utilisée à la place de quelque chose qui peut être créé plus rapidement.

Dmitry Rubanovich
la source
2

Nous comptons sur les tests unitaires pour atteindre et maintenir la robustesse de nos logiciels. (La plupart de notre code s’exécute sur un serveur, sans tête; l’analyse post-opération des fichiers journaux est une stratégie clé.). Presque toutes les classes de notre implémentation font de la journalisation. Une partie importante de nos tests unitaires consiste à utiliser des enregistreurs "fictifs" utilisés lors des tests unitaires. Un test unitaire crée un enregistreur factice et le fournit à l'élément à tester. Il analyse ensuite (lorsque cela est utile / approprié) ce qui est consigné (en particulier les erreurs et les avertissements). L'utilisation d'un format de journal au format texte facilite grandement cette opération, essentiellement pour les mêmes raisons que pour les analyses effectuées sur de «véritables» journaux: vous disposez de plus d'outils, rapides à utiliser et à adapter.

Art Swri
la source
2
Bien que quelqu'un d'autre ait eu un vote négatif, j'aimerais souligner que ce type de réponse est toujours utile, mais cela montre que les journaux basés sur du texte peuvent être utiles même aux pires niveaux de la pratique d'une manière dont votre programmeur moyen ne se soucie pas vraiment, mais devrait. +1
Shaun Wilson
Merci pour le commentaire de support. J'essaie de fournir des informations qui, à mon avis, seront utiles à au moins certaines personnes. C'est ce que je veux et ce à quoi je m'attends quand je vais à SO.
Art Swri
2

Historiquement, les journaux étaient des enregistrements d’événements officiels, écrits à la main et séquentiels. Lorsque les machines devenaient capables d’enregistrer des événements, ceux-ci étaient écrits sur un périphérique de sortie papier, tel qu’une imprimante télétype, qui produisait un enregistrement séquentiel permanent, mais ne pouvait traiter que du texte et parfois sonner une sonnerie ...

Chris_F
la source
2

À l'époque de l'ordinateur central, nous utilisions un format de journal binaire conçu sur mesure. La raison principale n'était pas de gagner de la place, mais bien parce que nous voulions que le journal occupe un espace limité en remplaçant les anciennes entrées par de nouvelles. la dernière chose que nous voulions était de ne pas pouvoir diagnostiquer les problèmes dus à la saturation des disques (en 1980, l’espace disque coûtait 1 000 dollars / Mo, de sorte que les utilisateurs n’achetaient pas plus que ce dont ils avaient besoin).

Maintenant, j'aime toujours l'idée d'un fichier journal circulaire, et si les systèmes d'exploitation offraient une telle bête, je l'utiliserais sans hésiter. Mais le binaire était une mauvaise idée. Vous ne voulez vraiment pas perdre de temps à trouver les bonnes commandes pour déchiffrer un fichier journal lorsque vous avez un problème critique à résoudre.

Michael Kay
la source