diff Implab/Diagnostics/TraceLog.cs @ 195:ea485487a424 v2

minor changes
author cin
date Wed, 04 May 2016 12:28:08 +0300
parents 4c0e5ef99986
children 71e543dbe65a
line wrap: on
line diff
--- a/Implab/Diagnostics/TraceLog.cs	Mon Apr 25 15:18:56 2016 +0300
+++ b/Implab/Diagnostics/TraceLog.cs	Wed May 04 12:28:08 2016 +0300
@@ -7,31 +7,51 @@
 
 namespace Implab.Diagnostics {
     /// <summary>
-    /// Класс для публикации событий выполнения программы, события публикуются через <see cref="LogChannel{TraceEvent}"/>.
-    /// Журнал трассировки отражает логический ход выполнения программы и существует всегда, поскольку тесно связан с 
-    /// контекстом трассировки.
+    /// This class is used to trace a logical flow of the application, it publishes events to the default <see cref="TraceEvent"/> channel.
     /// </summary>
     public static class TraceLog {
+        /// <summary>
+        /// Starts the logical operation nested to the current operation nested to the current one.
+        /// </summary>
         [Conditional("TRACE")]
         public static void StartLogicalOperation() {
             TraceContext.Instance.StartLogicalOperation();
+
         }
 
+        /// <summary>
+        /// Starts the logical operation with the specified name, this name is usefull in logs.
+        /// </summary>
+        /// <param name="name">Name.</param>
         [Conditional("TRACE")]
         public static void StartLogicalOperation(string name) {
             TraceContext.Instance.StartLogicalOperation(name);
         }
 
+        /// <summary>
+        /// Ends the logical operation and restores the previous one.
+        /// </summary>
         [Conditional("TRACE")]
         public static void EndLogicalOperation() {
-            TraceContext.Instance.EndLogicalOperation();
+            var op = TraceContext.Instance.EndLogicalOperation();
+            LogChannel<TraceEvent>.Default.LogEvent(new TraceEvent(TraceEventType.OperationCompleted, String.Format("-{0} : {1}ms",op.Name, op.Duration)));
         }
 
+        /// <summary>
+        /// Writes an informational message.
+        /// </summary>
+        /// <param name="format">Format.</param>
+        /// <param name="arguments">Arguments.</param>
         [Conditional("TRACE")]
         public static void TraceInformation(string format, params object[] arguments) {
             LogChannel<TraceEvent>.Default.LogEvent(TraceEvent.Create(TraceEventType.Information, format, arguments));
         }
 
+        /// <summary>
+        /// Writes a warning message.
+        /// </summary>
+        /// <param name="format">Format.</param>
+        /// <param name="arguments">Arguments.</param>
         [Conditional("TRACE")]
         public static void TraceWarning(string format, params object[] arguments) {
             LogChannel<TraceEvent>.Default.LogEvent(TraceEvent.Create(TraceEventType.Warning, format, arguments));