|  |  | 
 |  |  | using System.Reflection; | 
 |  |  | using System.Text; | 
 |  |  | using System.Threading.Tasks; | 
 |  |  | using WIDESEA_Core.Attributes; | 
 |  |  | using WIDESEA_Core.Helper; | 
 |  |  | using WIDESEA_Core.LogHelper; | 
 |  |  |  | 
 |  |  | namespace WIDESEA_Core.AOP | 
 |  |  | { | 
 |  |  |     /// <summary> | 
 |  |  |    /// æ¦æªå¨BlogLogAOP ç»§æ¿IInterceptoræ¥å£ | 
 |  |  |    /// æ¦æªå¨LogAOP ç»§æ¿IInterceptoræ¥å£ | 
 |  |  |    /// </summary> | 
 |  |  |    public class LogAOP : IInterceptor | 
 |  |  |     { | 
 |  |  | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 MiniProfiler.Current.Step($"æ§è¡{invocation.InvocationTarget}.{invocation.Method.Name}()æ¹æ³ -> "); | 
 |  |  |  | 
 |  |  |                 //MethodParamsValidateAttribute? paramsValidateAttribute = invocation.Method.GetCustomAttribute<MethodParamsValidateAttribute>(); | 
 |  |  |                 //if (paramsValidateAttribute != null)  | 
 |  |  |                 //{ | 
 |  |  |                 //    foreach (var item in invocation.Arguments) | 
 |  |  |                 //    { | 
 |  |  |  | 
 |  |  |                 //    } | 
 |  |  |                 //} | 
 |  |  |                 //å¨è¢«æ¦æªçæ¹æ³æ§è¡å®æ¯å ç»§ç»æ§è¡å½åæ¹æ³ï¼æ³¨ææ¯è¢«æ¦æªçæ¯å¼æ¥ç | 
 |  |  |                 invocation.Proceed(); | 
 |  |  |  | 
 |  |  |                 // å¼æ¥è·åå¼å¸¸ï¼å
æ§è¡ | 
 |  |  |                 if (IsAsyncMethod(invocation.Method)) | 
 |  |  |                 { | 
 |  |  | 
 |  |  |                     apiLogAopInfo.ResponseJsonData = jsonResult; | 
 |  |  |                     Parallel.For(0, 1, e => | 
 |  |  |                     { | 
 |  |  |                         LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); | 
 |  |  |                         LogLock.OutLogAOP("å
¨å±æ¥å¿AOP", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); | 
 |  |  |                     }); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  | 
 |  |  |                 Parallel.For(0, 1, e => | 
 |  |  |                 { | 
 |  |  |                     //LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); | 
 |  |  |                     LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); | 
 |  |  |                     LogLock.OutLogAOP("å
¨å±æ¥å¿AOP", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); | 
 |  |  |                 }); | 
 |  |  |             }); | 
 |  |  |         } | 
 |  |  | 
 |  |  |                 // å¼å¸¸æ¥å¿éæè¯¦ç»çå æ ä¿¡æ¯ | 
 |  |  |                 Parallel.For(0, 1, e => | 
 |  |  |                 { | 
 |  |  |                     LogLock.OutLogAOP("AOPLogEx", new string[] { apiLogAopExInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopExInfo) }); | 
 |  |  |                     LogLock.OutLogAOP("å
¨å±å¼å¸¸é误æ¥å¿AOP", new string[] { apiLogAopExInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopExInfo) }); | 
 |  |  |                 }); | 
 |  |  |             } | 
 |  |  |         } |