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 :

[VB.Net 2.0] Reprendre les infos de My.Settings dans une DLL pour My.Application.Log


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut [VB.Net 2.0] Reprendre les infos de My.Settings dans une DLL pour My.Application.Log
    Bonjour,

    j'utilise l'objet My.Application.Log pour tracer mon application.

    Dans mon application exécutable, j'utilise un Setting de type System.Diagnostics.SourceLevels que je définis à Off, All, Error, etc... en fonction de mes besoins dans le fichier App.Config.
    Au chargement de mon application, je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Application.Log.TraceSource.Switch.Level = My.Settings.TraceLevel
    Tout ça fonctionne très bien.

    Mon application utilise des librairies DLL, dans lesquelles je fais également des appels à My.Application.Log.WriteEntry(...) mais le problème est que le Switch.Level est toujours à Information par défaut, et non à ce que j'ai défini dans mon exécutable.

    Comment faire pour répercuter ce que je veux dans ma DLL ?

    Merci !
    Vonotar.

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Hello,

    il faut que tu changes dans ta dll la valeur de ce setting.

    Bye.

  3. #3
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    merci de ta réponse mais... malheureusement je ne la comprends pas.

    Je n'ai pas de Settings au niveau de ma DLL, uniquement au niveau de mon EXE.

    Ce que je voudrais, c'est que le paramètre My.Application.Log.TraceSource.Switch.Level de mon EXE soit répercuté dans celui de ma DLL.

    Merci,
    Vonotar.

  4. #4
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    je n'ai toujours pas avancé dans la résolution de ce problème: n'est-il pas possible, à partir d'une DLL, de trouver la référence à l'application EXE utilisant cette DLL et, par conséquent, de récupérer les Settings de l'EXE ?

    Merci à qui pourra m'éclairer,
    Vonotar

  5. #5
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Hello,

    as-tu essayé de modifier le Switch.Level de ta dll ?
    Par exemple, lorsque tu initialises le Switch.Level de ton application, initialiser aussi le Switch.Level de ta dll ? As-tu essayé ? Je ne dis pas que c'est une solution correcte mais pour s'assurer que cela fonctionne.

    Tiens moi au courant.

  6. #6
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut
    Bonjour Pilloutou,

    oui, je l'ai fait: au début d'une des fonctions de la DLL, j'ai modifié le Switch.Level et le niveau de trace pour cette fonction était correctement appliqué au niveau du log.

    Merci de m'aider,
    Vonotar.

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Points : 122
    Points
    122
    Par défaut
    Bonjour,

    j'ai essayé et cela fonctionne de mon côté.

    Voilà ce que j'ai fait:

    J'ai fait une dll dans laquelle j'ai défini une classe avec une méthode statique.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public MyClass
    {
         public static TraceMessage(string message)
         {
             TraceSource trace1 = new TraceSource("Trace1");
     
             Console.WriteLine(trace1.Switch.Level.ToString());        
     
             trace1.TraceInformation(message);
         }
    }

    J'ai compilé ceci sous forme de dll que je référence dans une application console dans laquelle j'ai défini un fichier de config app.config dans lequel il y a:
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	<system.diagnostics>
    		<sources>
    			<source name="Trace1" switchName="Switch1">
    				<listeners>
    					<add name="TraceOnConsole" type="System.Diagnostics.ConsoleTraceListener"/>
    				</listeners>
    			</source>
    		</sources>
    		<switches>
    			<add name="Switch1" value="Information"/>
    		</switches>
    	</system.diagnostics>

    Ensuite, dans ma classe Program, j'ai fait ceci:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                MyDll.MyClass.TraceMessage("Mon Message");
     
                Console.ReadLine();

    Le message "Mon Message s'affiche si dans le fichier app.config, j'ai bien le niveau défini à Information ou All.

    Si tu veux d'autres informations, n'hésite pas.

  8. #8
    Membre du Club
    Homme Profil pro
    Coordinateur Qualité
    Inscrit en
    Avril 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Coordinateur Qualité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 62
    Points : 57
    Points
    57
    Par défaut
    Merci de t'y intéresser, Etienne.

    Mon problème ne viendrait-il alors pas de l'utilisation de My.Application.Log (qui n'est pas disponible en C# je crois) ?

    Dans ma DLL, j'utilise une fonction Shared (static en C#). Je devrais donc, au tout début de cette fonction, mettre à jour le My.Application.Log.TraceSource.Switch.Level à la même valeur que la même propriété de l'exécutable. Mais comment faire ça ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/02/2015, 17h18
  2. Réponses: 1
    Dernier message: 10/06/2014, 17h05
  3. Récupérer les infos d'un formulaire dans une table
    Par Le_Shadock dans le forum WinDev
    Réponses: 9
    Dernier message: 18/04/2008, 09h26
  4. [MySQL] reprendre les infos d'une bd pour mettre dans une info bulle
    Par luciedoudou dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/01/2007, 13h55
  5. Comment recuperer les info d'un formulaire dans une boite de dialogue
    Par frutix dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/05/2006, 11h42

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