public static MethodInvocationLoggingConfiguration <BusinessEvent> WithAdditionalData( this MethodInvocationLoggingConfiguration <BusinessEvent> config, Func <IContainer, InvocationData, object> additionalDataRetriever, string additionalDataKey) { return(config.PrepareLogData((container, data, logData) => { logData.AdditionalData.Add(additionalDataKey, additionalDataRetriever(container, data)); })); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithEverythingNecessaryForPerformanceMonitor( this MethodInvocationLoggingConfiguration <DictionaryLogData> config) { return(config .WithInvocationTime() .WithExecutionDuration() .WithAllArguments() .WithMethodName() .WithAdditionalData <int, IUserContext>((context, data) => context.UserId, "UserId") .WithExceptionIfThrown()); }
public static MethodInvocationLoggingConfiguration <BusinessEvent> AsBusinessEvent( this MethodInvocationLoggingConfiguration <BusinessEvent> config, Func <IContainer, InvocationData, string> eventNameRetrieveFunction) { return(config .OnlyIfSucceded() .WithUserNameFromCurrentUserContext() .PrepareLogData(((container, invocationData, logData) => { logData.EventName = eventNameRetrieveFunction(container, invocationData); logData.Time = DateTime.Now; }))); }
public static MethodInvocationLoggingConfiguration <BusinessEvent> WithUserNameFromCurrentUserContext( this MethodInvocationLoggingConfiguration <BusinessEvent> config) { return(config.PrepareLogData(((container, invocationData, logData) => { var currentUserContext = container.Resolve <IUserContext>(); var userNameRetriever = container.Resolve <IUserNameRetriever>(); logData.UserName = userNameRetriever.GetUserName(currentUserContext.UserId); container.Release(userNameRetriever); container.Release(currentUserContext); }))); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithAdditionalData <TDataValue, TComponent>( this MethodInvocationLoggingConfiguration <DictionaryLogData> config, Func <TComponent, InvocationData, TDataValue> valueRetrieveFunction, string dataKeyName) where TComponent : class { return(config.PrepareLogData(((container, invocationData, logData) => { TComponent component = null; try { component = container.Resolve <TComponent>(); logData[dataKeyName] = valueRetrieveFunction(component, invocationData); } finally { if (component != null) { container.Release(component); } } }))); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithArgument(this MethodInvocationLoggingConfiguration <DictionaryLogData> config, string argumentName) { return(WithArguments(config, argumentName)); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithMethodName( this MethodInvocationLoggingConfiguration <DictionaryLogData> config, string dataKeyName) { return(config.WithAdditionalData((container, invocationData) => invocationData.Raw.MethodInfo.ToString(), dataKeyName)); }
public static MethodInvocationLoggingConfiguration <BusinessEvent> AsBusinessEvent( this MethodInvocationLoggingConfiguration <BusinessEvent> config, string eventName) { return(config.AsBusinessEvent((container, invocationData) => eventName)); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithMethodName( this MethodInvocationLoggingConfiguration <DictionaryLogData> config) { return(config.WithMethodName("Method")); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithExceptionIfThrown(this MethodInvocationLoggingConfiguration <DictionaryLogData> config) { return(WithExceptionIfThrown(config, "Exception")); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithExceptionIfThrown(this MethodInvocationLoggingConfiguration <DictionaryLogData> config, string dataKeyName) { return(config.PrepareLogData(((container, invocationData, logData) => { if (invocationData.Raw.Exception != null) { logData[dataKeyName] = invocationData.Raw.Exception; } }))); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithAllArguments(this MethodInvocationLoggingConfiguration <DictionaryLogData> config) { return(config.PrepareLogData((container, data, logData) => { foreach (KeyValuePair <string, object> arg in data.Arguments) { logData[arg.Key] = arg.Value; } })); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithInvocationTime(this MethodInvocationLoggingConfiguration <DictionaryLogData> config) { return(WithInvocationTime(config, "BeginTime")); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithConst <T>( this MethodInvocationLoggingConfiguration <DictionaryLogData> config, string dataKeyName, T dataValue) { return(config.PrepareLogData(((container, invocationData, logData) => logData[dataKeyName] = dataValue))); }
public static MethodInvocationLoggingConfiguration <BusinessEvent> OnlyIfSucceded( this MethodInvocationLoggingConfiguration <BusinessEvent> config) { return(config.OnCondition((container, invocationData) => invocationData.Raw.Exception == null)); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithAdditionalData <TDataValue>(this MethodInvocationLoggingConfiguration <DictionaryLogData> config, Func <IContainer, InvocationData, TDataValue> valueRetrieveFunction, string dataKeyName) { return(config.PrepareLogData(((container, invocationData, logData) => logData[dataKeyName] = valueRetrieveFunction(container, invocationData)))); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithExecutionDuration( this MethodInvocationLoggingConfiguration <DictionaryLogData> config, string dataKeyName) { return(config.PrepareLogData(((container, invocationData, logData) => logData[dataKeyName] = invocationData.Raw.Duration))); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithExecutionDuration(this MethodInvocationLoggingConfiguration <DictionaryLogData> config) { return(WithExecutionDuration(config, "Duration")); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithReturnedValue( this MethodInvocationLoggingConfiguration <DictionaryLogData> config) { return(config.WithReturnedValue("ReturnedValue")); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithReturnedValue( this MethodInvocationLoggingConfiguration <DictionaryLogData> config, string dataKeyName) { return(config.WithAdditionalData((container, invocationData) => invocationData.Raw.ReturnValue, dataKeyName)); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> WithArguments(this MethodInvocationLoggingConfiguration <DictionaryLogData> config, params string[] argumentsNames) { return(config.PrepareLogData((container, data, logData) => { foreach (string argName in argumentsNames) { logData[argName] = data.Arguments[argName]; } })); }
public static MethodInvocationLoggingConfiguration <DictionaryLogData> OnlyIfFailed(this MethodInvocationLoggingConfiguration <DictionaryLogData> config) { return(config.OnCondition((container, data) => data.Raw.Exception != null)); }