RDIFramework.NET ━ .NET快速信息化系统开发框架 记录所有操作的Sql

在实际开发或试运行过程中,我们有时需要查看或分析模块执行的所有sql,以便进行相关分析。有时我们可以通过数据库自带的软件抓取,如:SQL Server Profiler。在我们RDIFramework.NET框架中已经提供了对Sql执行的跟踪支持,只需要把“LogSQL”配置项设置为True即可。

WinForm配置如下图所示:

MVC配置为:Code\RDIFramework.MvcApp\XmlConfig\下的system.config

WebForm配置为:Code\RDIFramework.WebApp\下的Web.config

Web同时要指定:SystemInfo.StartupPath = HttpContext.Current.Server.MapPath("~/");

如下图所示

登录框架后,随便点击一些模块,再查看框架运行目录下的“\Log\Query\”文件夹下以日期开始的文本文件,如下图所示:

随便打开一个文件,就可以查看所有的sql,如下图:

方法参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/// <summary>
   /// 写入sql查询句日志
   /// </summary>
   /// <param name="commandText"></param>
   public virtual void WriteLog(string commandText)
   {
       string fileName = DateTime.Now.ToString(SystemInfo.DateFormat) + " _ " + this.FileName;
       WriteLog(commandText, fileName);
   }
 
       /// <summary>
   /// 写入sql查询句日志
   /// </summary>
   /// <param name="commandText">异常</param>
   /// <param name="fileName">文件名</param>
   public virtual void WriteLog(string commandText, string fileName = null)
   {
       if (string.IsNullOrEmpty(fileName))
       {
           fileName = DateTime.Now.ToString(SystemInfo.DateFormat) + " _ " + this.FileName;
       }
       string returnValue = string.Empty;
       // 系统里应该可以配置是否记录异常现象
       if (!SystemInfo.LogSQL)
       {
           return;
       }
       // 将异常信息写入本地文件中
       string logDirectory = SystemInfo.StartupPath + @"\\Log\\Query";
       if (!System.IO.Directory.Exists(logDirectory))
       {
           System.IO.Directory.CreateDirectory(logDirectory);
       }
       string writerFileName = logDirectory + "\\" + fileName;
       if (!File.Exists(writerFileName))
       {
           FileStream FileStream = new FileStream(writerFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
           FileStream.Close();
       }
       StreamWriter streamWriter = new StreamWriter(writerFileName, true, Encoding.Default);
       streamWriter.WriteLine(DateTime.Now.ToString(SystemInfo.DateTimeFormat) + " " + commandText);
       streamWriter.Close();
   }
 
   public virtual void WriteLog(string commandText, IDbDataParameter[] dbParameters = null, string fileName = null)
   {
       // 系统里应该可以配置是否记录异常现象
       if (!SystemInfo.LogSQL)
       {
           return;
       }
       if (string.IsNullOrEmpty(fileName))
       {
           fileName = DateTime.Now.ToString(SystemInfo.DateFormat) + " _ " + FileName;
       }
       string message = string.Empty;
       message = DateTime.Now.ToString(SystemInfo.DateTimeFormat) + System.Environment.NewLine + "commandText内容" + System.Environment.NewLine + commandText;
       if (dbParameters != null)
       {
           StringBuilder sb = new StringBuilder();
           foreach (var parameter in dbParameters)
           {
               sb.AppendLine(parameter.ParameterName + "=" + parameter.Value);
           }
           message += System.Environment.NewLine + "dbParameters内容" + System.Environment.NewLine + sb.ToString();
       }
       string logDirectory = SystemInfo.StartupPath + @"\Log\Query";
       if (!System.IO.Directory.Exists(logDirectory))
       {
           System.IO.Directory.CreateDirectory(logDirectory);
       }
       string writerFileName = logDirectory + "\\" + fileName;
       if (!File.Exists(writerFileName))
       {
           FileStream FileStream = new FileStream(writerFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
           FileStream.Close();
       }
       StreamWriter streamWriter = new StreamWriter(writerFileName, true, Encoding.Default);
       streamWriter.WriteLine(DateTime.Now.ToString(SystemInfo.DateTimeFormat) + " " + message);
       streamWriter.Close();
   }

  

  参考文章:  

RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录

RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)

RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V3.0 版本强势发布

RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍

RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用

  视频列表:

  第1部分、框架在不同数据库中的配置

第1.1讲、RDIFramework.NET框架在SqlServer2008+中的配置与运行讲解

第1.2讲、RDIFramework.NET框架在Oracle11g+中的配置与运行讲解

第1.3讲、RDIFramework.NET框架在MySql 5.0+ 中的配置与运行讲解

第2部分、框架基于代码生成器的开发

第2.1讲、RDIFramework.NET框架基于代码生成器业逻辑层代码的生成

第2.2讲、RDIFramework.NET框架基于代码生成器生成MvcUI的讲解

第2.2.1讲、RDIFramework.NET框架基于代码生成器生成MvcUI的讲解_第2.2讲补充视频

第2.3讲、RDIFramework.NET框架基于代码生成器生成WebFormUI的讲解

第2.4讲、RDIFramework.NET框架基于代码生成器生成的业务逻辑进行WinForm程序的开发

 

 

    一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。

      RDIFramework.NET官方网站:http://www.rdiframework.net/

      RDIFramework.NET官方博客:http://blog.rdiframework.net/

      同时需要说明的,以后的所有技术文章以官方网站为准,欢迎大家收藏!

      RDIFramework.NET框架由专业团队长期打造、一直在更新、一直在升级,请放心使用! 

       欢迎关注RDIFramework.net框架官方公众微信微信号:guosisoft),及时了解最新动态。

       扫描二维码立即关注

posted @   .NET快速开发框架  阅读(559)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2012-08-09 【推荐】Sql Server 不常见应用之一:获取表的基本信息、字段列表、存储过程参数列表
2012-08-09 Sql Server 不常见应用之一:获取表的基本信息、字段列表、存储过程参数列表
点击右上角即可分享
微信分享提示