public static void Request(this ILog log, string name, Action call, params KeyValuePair <string, object>[] properties)
 {
     using (var time = new TimeMeasure())
     {
         try
         {
             call();
             log.Request(name, time.ElapsedTicks, null, properties);
         }
         catch (Exception ex)
         {
             log.Request(name, time.ElapsedTicks, ex, properties);
             throw;
         }
     }
 }
 /// <summary>
 /// Track dependency automatically, measure time and handle exceptions
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="log">The log.</param>
 /// <param name="type">The type.</param>
 /// <param name="name">The name.</param>
 /// <param name="command">The command.</param>
 /// <param name="call">The call.</param>
 /// <param name="properties">Extra properties</param>
 public static void Dependency(this ILog log, string type, string name, string command, Action call, params KeyValuePair <string, object>[] properties)
 {
     using (var time = new TimeMeasure())
     {
         try
         {
             call();
             log.Dependency(type, name, command, time.ElapsedTicks, null, properties);
         }
         catch (Exception ex)
         {
             log.Dependency(type, name, command, time.ElapsedTicks, ex, properties);
             throw;
         }
     }
 }
Exemple #3
0
        /// <summary>
        /// Track dependency automatically, measure time and handle exceptions
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="log">The log.</param>
        /// <param name="type">The type.</param>
        /// <param name="name">The name.</param>
        /// <param name="command">The command.</param>
        /// <param name="call">The call.</param>
        /// <returns></returns>
        public static async Task <T> Dependency <T>(this ILog log, string type, string name, string command, Func <Task <T> > call)
        {
            using (var time = new TimeMeasure())
            {
                try
                {
                    T result = await call();

                    log.Dependency(type, name, command, time.ElapsedTicks);
                    return(result);
                }
                catch (Exception ex)
                {
                    log.Dependency(type, name, command, time.ElapsedTicks, ex);
                    throw;
                }
            }
        }
        /// <summary>
        /// Track dependency automatically, measure time and handle exceptions
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="log">The log.</param>
        /// <param name="type">The type.</param>
        /// <param name="name">The name.</param>
        /// <param name="command">The command.</param>
        /// <param name="call">The call.</param>
        /// <param name="properties">Extra properties</param>
        public static async Task <T> DependencyAsync <T>(this ILog log, string type, string name, string command, Func <Task <T> > call, params KeyValuePair <string, object>[] properties)
        {
            using (var time = new TimeMeasure())
            {
                try
                {
                    T result = await call();

                    log.Dependency(type, name, command, time.ElapsedTicks, null, properties);
                    return(result);
                }
                catch (Exception ex)
                {
                    log.Dependency(type, name, command, time.ElapsedTicks, ex, properties);
                    throw;
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// Track dependency with automation time measurement and error handling
        /// </summary>
        public static async Task <T> DependencyAsync <T>(this ILog log, string name, string command,
                                                         Task <T> action,
                                                         params object[] properties)
        {
            using (var time = new TimeMeasure())
            {
                try
                {
                    T result = await action;

                    log.Dependency(name, name, command, time.ElapsedTicks, null, properties);

                    return(result);
                }
                catch (Exception ex)
                {
                    log.Dependency(name, name, command, time.ElapsedTicks, ex, properties);
                    throw;
                }
            }
        }