Utilisation des "listeners"

Description

Dans ce code il y a une classe qui ajoute deux types de listeners à la fonction Debug.WriteLine, Debug.WriteLineIf, ...
C'est très pratique quand on veut voir dans un fichier texte ou dans l'observateur d'événements de Windows (Poste de travail, Gérer, Observateur d'evts).

Source / Exemple :


using System;
using System.IO;
using System.Diagnostics;

class MyClass {
	private EventLog objWindowsLog;
	private String sCurLogSource;
	
	public MyClass() {
		// Constructeur par défaut
		
		sCurLogSource="ThisComponent";
		
        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists(sCurLogSource)){
            EventLog.CreateEventSource(sCurLogSource, "Mes progs à moi");
        }
                
        // Create an EventLog instance and assign its source.
        objWindowsLog = new EventLog();
        objWindowsLog.Source = sCurLogSource;
        
        // Write an informational entry to the event log.    
        objWindowsLog.WriteEntry("Log object initialized");
		
	}
	
	public MyClass(String sComponentName) {
		sCurLogSource=sComponentName;
		
        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists(sCurLogSource)){
            EventLog.CreateEventSource(sCurLogSource, "Mes progs à moi");
        }
                
        // Create an EventLog instance and assign its source.
        objWindowsLog = new EventLog();
        objWindowsLog.Source = sCurLogSource;
        
        // Write an informational entry to the event log.    
        objWindowsLog.WriteEntry("Log object initialized");
		
	}

	public void RemoveDebugListeners() {
		// remove all listeners to the Debug object...
		for (int i=0; i<Debug.Listeners.Count; i++){
			Debug.Listeners.RemoveAt(i);
		}
	}

	public void AddDebugLogListener() {
		// Create a trace listener for the event log.
    	EventLogTraceListener LogListener = new EventLogTraceListener(sCurLogSource);
					
		// Add the event log trace listener to the collection.
		Debug.Listeners.Add(LogListener);
		Debug.WriteLine("Listener Added");
	}
	
	public void AddDebugFileListener(String sFileName){
		// Create a file listener.
		Stream s = File.Create(sFileName);
		TextWriterTraceListener FileListener = new TextWriterTraceListener(s);

		// Add the file listener to the collection.
		Debug.Listeners.Add(FileListener);
	}
}

Conclusion :


Dans li fichier ZIp, il y a un programme qui utilise cette classe...

Si vous avez SharpDevelop, ouvrez la solution avec ListenersDemo.cmbx
Bonne prog

David.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.