IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Threads & Processus C++ Discussion :

Thread safe logging


Sujet :

Threads & Processus C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 39
    Par défaut Thread safe logging
    Bonjour,

    N'étant pas très sur que les terme "Thread safe logging" correspondent bien à mon besoin, je vais tenter de l'expliciter :

    Je cherche une bibliothèque, capable de gérer une pile d'écriture sur un fichier log, et qui éviterai des chevauchement de message de type :
    Entête A
    Entête B
    Corps A
    Entête C
    Corps B
    Corps A

    Pour obtenir quelque chose comme :
    Entête A
    Corps A
    Entête B
    Corps B
    Entête C
    Corps C.

    Le tout étant de ne pas bloquer l'exécution des threads qui attendrait la fin de l'écriture dans le fichier log pour continuer leurs taches.

    Connaitriez-vous des bibliothèques qui correspondrait à mon besoin?
    (Si vous en connaissez plusieurs, tant mieux, j'ai besoin d'être exhaustif dans mes recherches).

    Merci d'avance,

    Olivier

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    A priori, si tu trouves un programme ou une lib qui permet de faire ça, ça m'intéresse fortement. Elle devrait comporter une module de lecture dans les pensées du programmeur qui pourrait probablement se revendre assez aisément et pour une somme non négligeable

    Tu n'auras pas d'autre solution que d'implémenter ce qui correspond à tes besoins par toi même. Note quand même que ce type de log (qui regroupe les informations) est tout de même dangereux, parce que tu bufferises nécessairement (donc en cas de problème, tu peux manquer des infos).
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 39
    Par défaut
    Je pense que je n'ai pas saisi l'origine de la pointe d'humour..

    Il ne s'agit pas de deviner quelles sont les intentions du programmeur, mais d'éviter qu'un message que l'on souhaite inscrire dans un log soit entrecoupé par un autre message provenant d'un autre thread.

    Il m'avait semblé avoir entendu parler de log4j pour faire ce genre de chose en java..

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par Olivier.Ramon Voir le message
    Je pense que je n'ai pas saisie l'origine de la pointe d'humour..
    Ah ?

    Citation Envoyé par Olivier.Ramon Voir le message
    Il ne s'agit pas de deviner quelles sont les intentions du programmeur, mais d'éviter qu'un message que l'on souhaite inscrire dans un log soit entrecoupé par un autre message provenant d'un autre thread.
    Et comment est-ce que le système est censé deviner que tel message viens de tel thread ? Et plus important, comment est-ce qu'il est censé savoir quel sont les points où il peut donner la main à un autre thread ? Le tout, sans attente de du thread appelant ?

    Citation Envoyé par Olivier.Ramon Voir le message
    Il m'avait semblé avoir entendu parler de log4j pour faire ce genre de chose en java..
    log4j implémente un mécanisme de synchro donc ça veut dire qu'à un moment ou à un autre, il y a une attente. A un moment donné, il faut de toute façon qu'on implémente un point de synchronisation, même le plus petit possible, pour éviter qu'une opération atomique ne soit entrecoupée par d'autres opérations. Demander à une librairie de le faire revient à lui demander de mettre elle-même les points de synchro en fonction de ce qu'elle doit afficher, donc de comprendre non seulement ce qu'elle affiche mais aussi les intention du programmeur - parce qu'une chaine peut être fractionnée, et dans ce cas la lib doit se dire "ok, je sais qu'il va encore m'envoyer quelque chose donc je ne donnes pas la main tout de suite à un autre message de log").

    D'ou mon trait d'humour
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Si c'est pour un environnement Windows regarde Winlog. Cela fait ce que tu demandes.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    Si c'est pour un environnement Windows regarde Winlog. Cela fait ce que tu demandes.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 39
    Par défaut
    Je vois ce que tu veux dire. Mais en fait, mon but n'est pas qu'il gère la priorité de tel ou tel thread, mais que les messages ne soit pas coupé en plusieurs morceaux.

    Alors certes, il est possible de bloquer l'accès à l'écriture aux autres threads pour que le message soit écrit en un bloc, mais ne serait-il pas possible d'avoir un thread à part, qui gère une pile d'évènement ( un évènement = une écriture sur le log). Et n'y a-'il pas de bibliothèques donnant les outils pour ce genre de tache?

    J'entrevois les problèmes que cela induit (pile qui s'allonge, risque de perte d'info en cas de crash), mais ces risques semblent rentrer dans mon cahier des charges.

    €dit : Merci ram-0000, je vais regarder ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Logging performant et thread-safe avec PHP
    Par marcha dans le forum Langage
    Réponses: 0
    Dernier message: 24/02/2011, 22h54
  2. [RCP] Treeviewer non thread-safe ?
    Par Guildux dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 09/01/2007, 13h00
  3. Code "Thread Safe" ?
    Par Neitsa dans le forum C++
    Réponses: 3
    Dernier message: 23/12/2005, 14h33
  4. [Language]Immutable & Thread-Safe
    Par Repti dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 21/12/2005, 15h50
  5. [MFC] CMAP non thread safe ?
    Par fmarot dans le forum MFC
    Réponses: 5
    Dernier message: 04/10/2005, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo