public string TraceLogCommandAction(string guid, DateTime dateTraitement, string codeappli, int codeerreur, string description) { if (OnlyHexInString(guid)) { //test droit ecriture + ajout ligne si non présente + incrémente compteur string result = "RAS"; result = VerifPresenceDate(guid); if (result == "OK") { codeappli = ControleString(codeappli); description = ControleString(description); TraceLogModel myTraceLogModel = new TraceLogModel(guid, dateTraitement, codeappli, codeerreur, description); return("OK"); } else if (result == "RELICA") { return("RELICA"); } else { return("KO"); } } else { return("KO"); } }
public static TraceLog ToEntity(this TraceLogModel model, TraceLog destination) { return(model.MapTo(destination)); }
public static TraceLog ToEntity(this TraceLogModel model) { return(model.MapTo <TraceLogModel, TraceLog>()); }
public async Task InvokeAsync(HttpContext context) { context.Items.Add(KeyName, Stopwatch.StartNew()); var originalResponseStream = context.Response.Body; using (MemoryStream responseStream = new MemoryStream()) { context.Response.Body = responseStream; await _next(context); var contextItem = context.Items.FirstOrDefault(a => a.Key.ToString() == KeyName); if (contextItem.Value != null) { // 删除添加的信息,避免下次使用的时候,保存的还是上次的内容 context.Items.Remove(KeyName); var stopWatch = contextItem.Value as Stopwatch; var requestPath = context.Request.Path.ToUriComponent(); var paramterStr = string.Empty; if (context.Request.Method == "GET") { paramterStr = context.Request.QueryString.ToString(); } if (context.Request.Method == "POST") { context.Request.EnableBuffering(); context.Request.Body.Seek(0, SeekOrigin.Begin); StreamReader requestStreamReader = new StreamReader(context.Request.Body); paramterStr = await requestStreamReader.ReadToEndAsync(); } context.Response.Body.Seek(0, SeekOrigin.Begin); var responseStr = await new StreamReader(context.Response.Body).ReadToEndAsync(); context.Response.Body.Seek(0, SeekOrigin.Begin); await context.Response.Body.CopyToAsync(originalResponseStream); var clientIp = context.Connection.RemoteIpAddress.ToString(); stopWatch.Stop(); var traceLog = new TraceLogModel() { Method = context.Request.Method, ClientIp = clientIp, Url = requestPath, Parameter = paramterStr, ResponseContent = responseStr, RequestDate = DateTime.Now, Type = this.GetType().FullName, HttpStatusCode = context.Response.StatusCode, ConsumeTime = (int)stopWatch.ElapsedMilliseconds }; _logger.LogInformation(JsonConvert.SerializeObject(traceLog)); } } }