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

Qt Discussion :

Tracer des logs par le biais d'un thread


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut Tracer des logs par le biais d'un thread
    Bonjour,

    J'ai une difficulté d'approche avec un thread.
    J'aimerais pouvoir ajouter des traces à mon application.
    Je les ai pour l'instant sur ma console mais évidement elles sont inexploitables puisqu'elles disparaissent une fois l'exécution du programme finie.
    J'ai donc décidé de mettre tout ça dans un fichier texte (quoi de plus logique )

    Afin d'éviter que l'appli ne se bloque sur un problème quelconque de fichier, je voudrais faire ça dans un thread. (Déjà : Est-ce une bonne idée?)

    J'ai donc créé une nouvelle classe en utilisant QThread et ré implémenté la fonction run() qui permet dans un premier temps d'ajouter la date et l'heure du démarrage de l'application.
    A partir d'ici, des qu'un évènement est généré, je voudrais le mettre dans mon fichier.

    Pour l'instant, lorsque je fais un affichage dans la console comme par exemple "client 1: Connexion Etablie" , c'est à partir de l'objet que je le fais.
    Tout bêtement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out<<"Client " << NomClient <<": Connexion Etablie " <<endl;
    C'est ce genre de choses que je voudrais tracer dans mon fichier.
    Ce sont ces sorties sur la console que je fais depuis mes objets que je voudrais récupérer.

    Et je ne vois pas trop comment mon thread pourrait intervenir dessus. :s

    J'ai voulu créer une méthode AjouterLog dans ma classe mais je ne vois pas trop comment je pourrais m'en servir sachant que je déclare et démarre mon thread depuis le main().

    Alors je voudrais savoir quelles sont les possibilités qui s'offrent à moi à votre avis?

    En espérant avoir été assez précis j'attends vos idées ou remarques
    merci d'avance.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par L-F-an Voir le message
    Afin d'éviter que l'appli ne se bloque sur un problème quelconque de fichier, je voudrais faire ça dans un thread. (Déjà : Est-ce une bonne idée?)
    que pense tu gagner avec un thread pour? (ca depend de ton besoin)


    Es ce que qDebug, qFatal, ... ne te suffirai pas?
    http://qt.developpez.com/doc/latest/...gging-messages
    http://qt.developpez.com/doc/latest/...tallmsghandler

    Si tu veut du log assez poussé, regarde log4Qt
    http://log4qt.sourceforge.net/

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut
    Déjà, merci pour cette réponse si rapide.

    En ce qui concerne mon besoin, je ne voudrais pas que mon appli plante si par exemple mon fichier est devenu trop volumineux pour le disque, ou il s'est fait supprimer (je ne sais même pas si c'est possible d'ailleurs pendant l'exécution...) ou un problème du genre.
    Dans le pire des cas, les logs ne seraient plus tracés dans le fichier mais l'appli tournerait toujours (c'est une appli qui établit une communication entre deux postes alors je ne voudrais pas qu'elle s'arrête comme ça, surtout pour un problème de fichier)
    Mais je réfléchis peut-être mal, c'est pour ça que je demande si c'est une bonne idée. Je ne cherche pas un gain en perf en tout cas.
    Qu'en penses-tu?

    qDebug, qFatal sont aussi des sorties sur la console non? Ou on peut les mettre dans un fichier texte?
    Log4Qt a vraiment l'air trop poussé pour l'utilisation que je veux en faire (et pas à mon niveau... Peut être dans quelques années )

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par L-F-an Voir le message
    qDebug, qFatal sont aussi des sorties sur la console non? Ou on peut les mettre dans un fichier texte?
    http://qt.developpez.com/doc/latest/...tallmsghandler

    C'est surement le plus simple si tu développe en Qt. Surtout qu'il peut afficher la grande majorité des classes que tu trouve dans Qt.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut
    merci beaucoup pour les conseils, ça me convient

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

Discussions similaires

  1. Réponses: 26
    Dernier message: 30/04/2013, 15h11
  2. shell-plsql: tracer des logs
    Par cathou9999 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 12/11/2009, 14h36
  3. Configuration des logs par .htaccess
    Par max3f dans le forum Apache
    Réponses: 3
    Dernier message: 09/04/2009, 22h48
  4. Réponses: 9
    Dernier message: 19/04/2007, 17h51
  5. Réponses: 45
    Dernier message: 07/07/2006, 15h08

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