同步操作将从 郑州微厦/AI培训学习-题库-考试-视频-直播 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
using System;using System.Collections.Generic;using System.Data;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using WeiSha.Data;namespace Song.ViewData.Helper{/// <summary>/// SQL查询监控/// </summary>public class DatabaseLog : WeiSha.Data.Logger.IExecuteLog{/// <summary>/// 查询开始之前/// </summary>/// <param name="command"></param>public void Begin(IDbCommand command){//throw new NotImplementedException();}/// <summary>/// 查询完成之后/// </summary>/// <param name="command"></param>/// <param name="retValue">返回值</param>/// <param name="elapsedTime">实例测量得出的总运行时间(以毫秒为单位</param>public void End(IDbCommand command, ReturnValue retValue, long elapsedTime){if ((int)WeiSha.Core.App.Get["LOG_LEVEL"].Int32 <= 2) return;//1秒内的不统计if (elapsedTime < 1000) return;System.Web.HttpContext _context = System.Web.HttpContext.Current;if (_context == null || _context.Request == null) return;string path = _context.Request.Url.AbsolutePath;path = path.IndexOf("v1/") > -1 ? path.Substring(path.LastIndexOf("v1/") + 3) : path;path = path.Replace("/", "_");//path =path.IndexOf("")string sql = command.CommandText;for (int i = 0; i < command.Parameters.Count; i++){System.Data.SqlClient.SqlParameter para = (System.Data.SqlClient.SqlParameter)command.Parameters[i];string vl = para.Value.ToString();string tp = para.DbType.ToString();if (tp.IndexOf("Int") > -1)sql = sql.Replace("@p" + i.ToString(), vl);if (tp == "String")sql = sql.Replace("@p" + i.ToString(), "'" + vl + "'");if (tp == "Boolean")sql = sql.Replace("@p" + i.ToString(), vl == "True" ? "1" : "0");if (tp == "DateTime")sql = sql.Replace("@p" + i.ToString(), "'" + ((DateTime)para.Value).ToString("yyyy/MM/dd HH:mm:ss") + "'");}WriteLog(path, sql, retValue, elapsedTime);}#region 日志写入的方法//日志目录,相对于根路径private static string log_path = "logs_sql_Elapsed";private static readonly object _lock = new object();/// <summary>////// </summary>/// <param name="path"></param>/// <param name="retValue"></param>/// <param name="elapsedTime"></param>public static void WriteLog(string path, string sql, ReturnValue retValue, long elapsedTime){Task task = new Task(() =>{_writeLog(path, sql, retValue, elapsedTime);});task.Start();}/// <summary>////// </summary>/// <param name="path"></param>/// <param name="retValue"></param>/// <param name="elapsedTime"></param>/// <returns></returns>protected static void _writeLog(string path, string sql, ReturnValue retValue, long elapsedTime){long elapsedNumber = elapsedTime / 1000 * 1000;if (elapsedNumber <= 0) return;//如果日志目录不存在就创建string rootPath = AppDomain.CurrentDomain.BaseDirectory;//string apiName=path.istring currPath = rootPath + log_path + "/" + (elapsedNumber + "." + path) + "/";if (!Directory.Exists(currPath)) Directory.CreateDirectory(currPath);//日志文件DateTime time = DateTime.Now;int logcount = System.IO.Directory.GetFiles(currPath).Length + 1;string filename = currPath + time.ToString("yyyy.MM.dd HH.mm.ss fff ") + logcount + ".log";//创建或打开日志文件,向日志文件末尾追加记录using (StreamWriter mySw = File.AppendText(filename)){//向日志文件写入内容StringBuilder sb = new StringBuilder();try{sb.AppendLine(string.Format("=>SQL elapsed time: {0},\t API: {1} ", time, path));sb.AppendLine(sql);sb.AppendLine("------------------- ReturnValue ------------------------------");sb.AppendLine("ElapsedTime: " + elapsedTime.ToString());//返回值string json = string.Empty;if (retValue.Data is SourceReader){//SourceTable table = ((SourceReader)retValue.Data).ToTable();//json = DataResult.ObjectToJson(table);}else if (retValue.Data is DataSet){DataSet ds = (DataSet)retValue.Data;json = DataResult.ObjectToJson(ds.Tables[0]);}else{json = DataResult.ObjectToJson(retValue.Data);}sb.AppendLine("ReturnValue: " + json);}catch (Exception ex){mySw.WriteLine(sb.ToString());mySw.WriteLine(ex.ToString());}try{mySw.WriteLine(sb.ToString());}catch (Exception ex){mySw.WriteLine(sb.ToString());mySw.WriteLine(ex.ToString());}//输出空行int empty_line = 5;while (empty_line-- > 0) mySw.WriteLine("");//关闭日志文件mySw.Close();}}#endregion}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。