/// <summary> /// Logs method calls to the configured logger based on a default format. /// /// for MethodName level, the format is "called method %method%" /// for Args level, the format is "called method %method% with arguments (%args)" /// /// Method call logging is performed before invocation. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="proxii"></param> /// <param name="detailLevel">The level of information to provide in the log message</param> /// <returns></returns> public static IProxii <T> LogCalls <T>(this IProxii <T> proxii, MethodCallDetailLevel detailLevel = MethodCallDetailLevel.MethodSignature) where T : class { return(LogCalls(proxii, LogLevel.Info, detailLevel)); }
/// <summary> /// Logs method calls to the configured logger based on a default format. /// /// for MethodSignature level, the format is "called method %method%" /// for Args level, the format is "called method %method% with arguments (%args)" /// /// Method call logging is performed before invocation. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="proxii"></param> /// <param name="detailLevel">The level of information to provide in the log message</param> /// <returns></returns> public static IProxii <T> LogCalls <T>(this IProxii <T> proxii, LogLevel logLevel, MethodCallDetailLevel detailLevel = MethodCallDetailLevel.MethodSignature) where T : class { switch (detailLevel) { case MethodCallDetailLevel.MethodSignature: return(LogCalls(proxii, logLevel, "called method %method%")); case MethodCallDetailLevel.Args: return(LogCalls(proxii, logLevel, "called method %method% with arguments (%args%)")); default: return(proxii); } }