Mega Code Archive

 
Categories / C# / Development Class
 

Instantiates a Trace log for detailed tracking of an applications internal activities

//----------------------------------------------------------------------- // <copyright file="Utility.cs" company="ParanoidMike"> //     Copyright (c) ParanoidMike. All rights reserved. // </copyright> //----------------------------------------------------------------------- namespace ParanoidMike {     using System;     using System.Diagnostics;     using System.IO;     using System.Runtime.Serialization.Formatters.Binary;     using Microsoft.Win32;     /// <summary>     /// Reusable functions for many uses.     /// </summary>     public static class Utility     {         /// <summary>         /// Instantiates a Trace log for detailed tracking of an application's internal activities.         /// </summary>         /// <param name="appLoggingFolder">         /// Name of folder to create in the current user's %LOCALAPPDATA% profile location.         /// </param>         /// <param name="traceLogFileName">         /// Name of file to create in the appLoggingFolder location.         /// </param>         public static void AddTraceLog(             string appLoggingFolder,             string traceLogFileName)         {             // Setup Trace log             TextWriterTraceListener traceLog;             string traceLogBaseFolder;             traceLogBaseFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);             Directory.CreateDirectory(Path.Combine(traceLogBaseFolder, appLoggingFolder));             // concatenate the full path             string fullPath = traceLogBaseFolder + "\\" + appLoggingFolder;             try             {                 Stream traceLogFile = File.Open(Path.Combine(fullPath, traceLogFileName), FileMode.Create, FileAccess.Write);                 // Create a new text writer using the output stream, and add it to the trace listeners.                 traceLog = new TextWriterTraceListener(traceLogFile);                 ((StreamWriter)(traceLog.Writer)).AutoFlush = true;             }             catch (Exception e)             {                 Console.WriteLine(e.Message, Environment.NewLine);                 Console.WriteLine(e.StackTrace, Environment.NewLine);                 throw;             }             Trace.AutoFlush = true;             Trace.Listeners.Clear();             Trace.Listeners.Add(traceLog);         }     } }