예제 #1
0
        /// <summary>
        /// Publishes the specified ex.
        /// </summary>
        /// <param name="ex">The ex.</param>
        /// <param name="additionalParameters">The additional parameters.</param>
        static public void Publish(Exception ex, NameValueCollection additionalParameters)
        {
            try
            {
                // add time stamps
                var now = DateTime.UtcNow;
                additionalParameters = additionalParameters ?? new NameValueCollection();
                additionalParameters.Add("Local Time", now.ToString("yyyy/MM/dd, HH:mm:ss.fff"));
                additionalParameters.Add("UTC", now.ToUniversalTime().ToString("yyyy/MM/dd, HH:mm:ss.fff"));

                if (!TimeEventTracker.CanEvent(ex.Message, _eventTracking, out int occurrences))
                {
                    return;
                }


                additionalParameters = additionalParameters ?? new NameValueCollection();

                if (occurrences != 0)
                {
                    additionalParameters = additionalParameters ?? new NameValueCollection();
                    additionalParameters["Occurrences"] = occurrences.ToString("N0");
                }

                var message = ExceptionFormatter.ConstructMessage(ex, additionalParameters);
                _logTextFileWriter.WriteLine(message);
            }
            catch (Exception)
            {
                // nothing we can do just swallow
            }
        }
예제 #2
0
 /// <summary>
 /// Publishes the specified exception.
 /// </summary>
 /// <param name="exception">The exception.</param>
 /// <param name="additionalParameters">The additional parameters.</param>
 public void Publish(Exception exception, NameValueCollection additionalParameters)
 {
     try
     {
         lock (this)
         {
             if (_logTextFileWriter != null)
             {
                 var entry = ExceptionFormatter.ConstructMessage(exception, additionalParameters);
                 _logTextFileWriter.WriteLine($"{entry}{Environment.NewLine}{_separator}{Environment.NewLine}");
             }
         }
     }
     catch (Exception)
     {
     }
 }