有时我们需要记录整个系统运行的SQL以作分析,特别是在上线前这对我们做内部测试也非常有帮助,当然记录SQL的方法有很多,也可以使用三方的组件。3.2版本我们在框架底层新增了记录框架运行的所有SQl过程保存到用户指定的地方以便分析查看,只需要在配置文件把配置项”LogSQL”设置为True即可。框架会自动记录各常用数据库如:Oracle、SqlServer、MySQL等的操作情况。
  一、Web记录Sql执行情况
  1、在我们的Web项目中要记录SQL可以在Web的配置文件中设置LogSql配置项为True,默认为False,配置文件的位置MVC项目是在RDIFramework.MvcApp项目根目录下的XmlConfig文件夹下的system.config文件,WebForm项目是在RDIFramework.WebApp项目根目录下的Web.Config文件,设置配置项如下图所示:

  只要设置LogSQL为True,框架就会自动记录所有Sql执行过程并保存到指定目录,一般默认在Web项目根目录的Log文件夹下,如下图:

  2、查看记录的Sql。

  打开一个文件,查年记录的Sql情况,如下:

  二、WinForm记录Sql执行情况

  WinForm项目记录Sql与Web类似,一样的要修改Config.xml中的记录Sql的配置项,如下图所示。

  通过上面的配置后,一样的我们打开框架做一些操作后查看记录的Sql情况,如下图:

  三、公共方法调用

  如果我们需要单独记录sql的执行情况,可以调用框架提供的公共接口,如下图所示:

  下面把写日志的三个公共接口分享,需要的可以参考哟。

#region public virtual void WriteLog(string commandText, string fileName = null) 写入sql查询句日志
/// <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();
}
#endregion

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

       扫描二维码立即关注

RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->新增记录SQL执行过程的更多相关文章

  1. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2 新增解压缩工具类ZipHelper

    在项目对文件进行解压缩是非常常用的功能,对文件进行压缩存储或传输可以节省流量与空间.压缩文件的格式与方法都比较多,比较常用的国际标准是zip格式.压缩与解压缩的方法也很多,在.NET 2.0开始,在S ...

  2. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2版本正式发布

     RDIFramework.NET .NET快速信息化系统开发框架 V3.2版本 正式发布 精益求精求完美! 1.RDIFramework.NET框架介绍 RDIFramework.NET,基于.NE ...

  3. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版新增消息管理

    在V3.0版本的Web(Mvc.WebForm)与WinForm中我们新增了“消息管理”模块.“消息管理”模块是对框架的所有消息进行管理.通过左侧的消息分类可以查看所选分类的所有消息列表.在主界面上我 ...

  4. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版新增查询引擎管理

    欲了解V3.0版本的相关内容可查看下面的链接地址. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版本发布 RDIFramework.NET — 基于.NET的快速信 ...

  5. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版新增系统参数管理

    欲了解V3.0版本的相关内容可查看下面的链接地址. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版本发布 在V3.0版本的Web(Mvc.WebForm)与WinF ...

  6. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版本新增序列管理

    欲了解V3.0版本的相关内容可查看下面的链接地址. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版本发布 在V3.0版本的Web(Mvc.WebForm)与WinF ...

  7. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.3版本全新发布

    1.RDIFramework.NET框架介绍 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,为企业或个人快速开发系统提供了强大的支持,开发人员不需要开发系统的基础功能和 ...

  8. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->WinForm版本新增新的角色授权管理界面效率更高、更规范

    角色授权管理模块主要是对角色的相应权限进行集中设置.在角色权限管理模块中,管理员可以添加或移除指定角色所包含的用户.可以分配或授予指定角色的模块(菜单)的访问权限.可以收回或分配指定角色的操作(功能) ...

  9. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本新增新的角色授权管理界面效率更高、更规范

    角色授权管理模块主要是对角色的相应权限进行集中设置.在角色权限管理模块中,管理员可以添加或移除指定角色所包含的用户.可以分配或授予指定角色的模块(菜单)的访问权限.可以收回或分配指定角色的操作(功能) ...

  10. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->WinForm版本重构岗位授权管理界面更规范、高效与美观

    岗位(职位)管理模块主要是针对组织机构的岗位(职位)进行管理,包括:增加.修改.删除.移动.对岗位设置用户,设置岗位的权限等.岗位管理在企业应用中是一个普遍应用的模块,也属于其他业务应用的基础.合理的 ...

随机推荐

  1. TimesTen数据库表中显示中文乱码的真正原因

    上一篇博客TimesTen中文乱码问题(其实是cmd.exe中文乱码)的内容可能不对,也许只是个巧合?不得而知了.因为我今天重装系统了,把win10换成了win7(64bit).又安装了timeste ...

  2. 登录RabbitMQ的方法

    一:(运行RabbitMQ之前需要先打开docker 容器)打开相应的路径,在windows Powershell 管理员下打开 输入:docker-compose -f .\docker-compo ...

  3. git教程——工作流程

    Git 工作流程 本章节我们将为大家介绍 Git 的工作流程. 一般工作流程如下: 克隆 Git 资源作为工作目录. 在克隆的资源上添加或修改文件. 如果其他人修改了,你可以更新资源. 在提交前查看修 ...

  4. Scanner,Random,匿名对象-------------------java基础学习第七天

    1.API 2.Scanner 功能:通过键盘输入数据到程序中. 引用类型的一般使用步骤: 导包 Import 包路径.类名称 只有java.lang 包写的类不需要导包,其他都需要 2.创建 类名称 ...

  5. Java for Andriod 第二周学习总结

    第四章 学习时遇到的问题或新知识点: 1. 构造方法.每个类至少有一个构造方法,且构造方法必须的名称必须与类名相同. 2. Varargs.允许方法拥有一个可变长度的参数列表. 3. 对象的内存分配. ...

  6. mysql数据库表的修改及删除

    一.对数据表的修改 1.重命名一张表: RENAME TABLE 原名 TO 新名字; ALTER TABLE 原名 RENAME 新名; ALTER TABLE 原名 RENAME TO 新名; 2 ...

  7. CentOS 7 安装配置 OpenVPN 客户端

    安装 epel yum 源: $ rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm $ ...

  8. 企业IT管理员IE11升级指南【14】—— IE11代理服务器配置

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  9. 1.7 All components require plug-in?

    In Android, Activity, Service, ContentProvider, and BroadcastReceiver are called as four major compo ...

  10. Java互联网架构-直播互动平台高并发分布式架构应用设计

    概述 网页HTML 静态化: 其实大家都知道网页静态化,效率最高,消耗最小的就是纯静态化的 html 页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法, ...