示例#1
0
 /// <summary>
 /// The channel for logging telemetry events to file
 /// </summary>
 /// <param name="settingsProvider"></param>
 /// <param name="logFile"></param>
 internal TelemetryLogToFileChannel(ITelemetryLogSettingsProvider settingsProvider, ITelemetryLogFile <TelemetryEvent> logFile)
 {
     CodeContract.RequiresArgumentNotNull <ITelemetryLogSettingsProvider>(settingsProvider, "settingsProvider");
     CodeContract.RequiresArgumentNotNull <ITelemetryLogFile <TelemetryEvent> >(logFile, "logFile");
     this.logFile          = logFile;
     this.settingsProvider = settingsProvider;
 }
示例#2
0
 public RemoteSettingsLogger(RemoteSettingsFilterProvider filterProvider, bool loggingEnabled, ITelemetryLogFile <RemoteSettingsLogMessage> logFile, ITelemetryLogSettingsProvider settingsProvider)
 {
     this.filterProvider   = filterProvider;
     this.loggingEnabled   = loggingEnabled;
     this.logFile          = logFile;
     this.settingsProvider = settingsProvider;
 }
示例#3
0
 /// <summary>
 /// Ensure to create a new writer for each session
 /// </summary>
 /// <param name="settingsProvider"></param>
 public void Initialize(ITelemetryLogSettingsProvider settingsProvider)
 {
     if (!isInitialized)
     {
         lock (telemetryWriterLocker)
         {
             if (!isInitialized)
             {
                 CodeContract.RequiresArgumentNotNull <ITelemetryLogSettingsProvider>(settingsProvider, "settingsProvider");
                 this.settingsProvider = settingsProvider;
                 if (telemetryWriter == null)
                 {
                     telemetryWriter = new TelemetryTextWriter(this.settingsProvider.FilePath);
                 }
                 WriteHeader();
                 isInitialized = true;
             }
         }
     }
 }