4 votes

Comment lire des fichiers .ETL dans .Net ?

Comment lire des fichiers ETL dans .Net ? Je veux voir mon fichier ETL dans une vue de liste mais je ne peux pas analyser le contenu du fichier car il n'est pas ascii.

4voto

Chris Points 2210

Je n'ai pas fait attention, j'ai trouvé la solution en effectuant diverses recherches sur Google :

    //Init
    System.Diagnostics.Process worker = new System.Diagnostics.Process();
    //Start logging
    worker.StartInfo.FileName="logman";
    worker.StartInfo.Arguments="start MyTcpipLog -p Microsoft-Windows-TCPIP -ets";
    worker.Start();
    worker.WaitForExit();
    //Do nothing for 30 seconds
    DateTime start = DateTime.Now;
    while(DateTime.Now.Subtract(start).Seconds<5){}
    //Stop logging
    worker.StartInfo.FileName="logman";
    worker.StartInfo.Arguments="stop MyTcpipLog -ets";
    worker.Start();
    worker.WaitForExit();
    //Convert .etl to .csv
    worker.StartInfo.FileName="tracerpt";
    worker.StartInfo.Arguments = "\""+System.IO.Path.GetDirectoryName(Application.ExecutablePath)+"\\MyTcpipLog.etl\" -o \""+System.IO.Path.GetDirectoryName(Application.ExecutablePath)+"\\MyTcpipLog.csv\"";
    worker.Start();
    worker.WaitForExit();
    //Load CSV into memory
    // create reader & open file
    System.IO.TextReader tr = new System.IO.StreamReader("MyTcpipLog.csv");
    string data = tr.ReadToEnd();
    tr.Close();
    //Delete CSV
    System.IO.File.Delete("MyTcpipLog.etl");
    System.IO.File.Delete("MyTcpipLog.csv");

3voto

Mihai Points 1140

Vous pourriez probablement utiliser P/Invoke et les fonctions WinAPI OpenTrace et ProcessTrace. Voir MSDN pour un exemple de code en C.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X