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

Windows Forms Discussion :

utilisation du log4net dans application windows en c#


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 43
    Points : 35
    Points
    35
    Par défaut utilisation du log4net dans application windows en c#
    salut,
    je veux utiliser le log4net pr avoir des traces, je développe une application windows en c#, et ma question c'est comment peut on utiliser le log4net avec un fichier de configuration séparé, parce que d'après ce que j'ai lu , les applications windows lisent par défaut les app.conf.
    en gros je veux utiliser le log4net sans toucher le fichier app.conf.
    ça me semble possible mais je c pas cmt faire?

    merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    un petit progrès Log4net trouve le fichier de conf mnt ce qu'il me le mentionnait avt comme erreur.
    sinon dons mon fichier de conf j'ai choisis tracer mes erreur et info dans une console, et puisque je développe une application windows j'ai pas de Main du coup j'appelle la console dans mon constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    public partial class Maclasse : Window
        {
           // use Log4net
            protected static readonly ILog _log =       LogManager.GetLogger(typeof(Maclasse));
    public Maclasse()
            {
     
                    XmlConfigurator.Configure();
                   InitializeComponent();
                   Console.Read();
              }
    private void btCancel_Click(object sender, RoutedEventArgs e)
           {
     
                   _log.Debug("This is a DEBUG Text");
           }
     
    }
    mais malheureusement la console ne se lance pas
    aurait tu une idée?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par yayasam Voir le message
    mais malheureusement la console ne se lance pas
    aurait tu une idée?
    Ben c'est normal si c'est une application Windows... Tu peux allouer manuellement une console en appelant l'API AllocConsole.

    Tu peux la déclarer comme ça en C# :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [DllImport("kernel32.dll")]
    static extern bool AllocConsole();

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Excuse mon ignorance je ss débutante
    pourrait tu m'expliquez d'avantage ou je pourrais allouer la console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [DllImport("kernel32.dll")];
    static extern bool AllocConsole();
    dans ma classe ou ds properties/assemblyinfo.cs ([DllImport("kernel32.dll")])

  6. #6
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    avec log4net il faut spécifier l'attribut Wath=true.

    Par exemple dans une directivce namespace, ou directement dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XmlConfigurator.ConfigureAndWatch();
    Un namespace qui n'a l'attribut watch à true ne log pas.

  7. #7
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Et il me semble même que tu peux spécifier le chemin du fichier de configuration dans une des surcharges XmlConfigurator.ConfigureAndWatch

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par yayasam Voir le message
    dans ma classe ou ds properties/assemblyinfo.cs ([DllImport("kernel32.dll")])
    dans ta classe
    et tu appelles AllocConsole au démarrage

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 43
    Points : 35
    Points
    35
    Par défaut LOG4NET: résolu
    merci bcp pr tous.
    j'ai résolu mon problème mais avec un fichier en sortie et pas une console:
    je vais faire un résumé de ttes les étapes que j'ai suivis pour ts ceux qui cherchent leurs solutions sur les forum comme moi:
    tt d'abord il faut savoir que quant il s'agit d'une application windows, L'API System.Configuration est disponible seulement si le paramétrage se trouve dans le fichier de configuration de l'application (app.config ou web.config).
    alors si vous voulez éviter d' intégrer votre config du LOG4NET dans le fichier app.config, vous devez tt simplement
    • créer un nouveau fichier fich.config ou vs pouvez mettre votre config log4net,
    • dans Properties/AssemblyInfo.cs mettez cette assembly: [assembly: log4net.Config.XmlConfigurator(ConfigFile = "T2log.config", Watch = true)]
    • dans votre classe n'oubliez pas : using log4net; using log4net.Config;
    • Et surtout vérifier si votre fichier de conf que vous venez de créer est bien mis dans le bin et pr que cela se fait automatiquement a chaque compilation, allez y dans les propriétés de votre fichier de conf et mettez copier dans le répertoire : toujours copier


    et voila normalement ts devra marcher.

    quelques questions pr ceux qui maitrise la configuration du LOG4NET:
    * y'a t-il moyen de configurer les couleurs d'affichage, autrement dis pour chaque niveau(INfo,DEBUG,...) affecter une couleur, je sais que c'est faisable avec les consoles, j'ai essayé cette config(celle des console) mais ça pas fonctionner pr le fichier?
    * comment peut on faire, pr avoir à chaque fois que les traces de la dérniére exécution ( en créant à chaque fois un nouveau fichier ou / et écraser l'ancien )


    merci encore pr ts le monde

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    bjr les gars, j'ai testé votre solution et j'ai buté durant deux jours. Le problème c'était la référence log4net.dll. il me manquait cette référence. je pense que la première étape est de télécharger la référence log4net.dll et l'intégrer au projet et ensuite passer aux étapes indiquées par yayasam.
    merci les gars







    "un petit apport peut éviter deux jours de recherches"

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

Discussions similaires

  1. Remplir Datagrid dans application windows mobile
    Par areda dans le forum VB.NET
    Réponses: 7
    Dernier message: 17/12/2010, 17h46
  2. [ODBC] Utilisation source systeme dans application
    Par GarsDuCalvados dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/04/2009, 14h07
  3. Réponses: 1
    Dernier message: 12/01/2007, 21h40
  4. Utiliser les threads dans application Struts
    Par rach375 dans le forum Struts 1
    Réponses: 7
    Dernier message: 18/09/2006, 11h32
  5. Utilisation de Pointeurs dans API windows
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 13/03/2003, 22h39

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