有时我们需要记录整个系统运行的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. MQTT之Mosquitto

    https://mosquitto.org/ Eclipse Mosquitto是一个开源(EPL / EDL许可)消息代理,它实现了MQTT协议版本3.1和3.1.1.Mosquitto重量轻,适用 ...

  2. Markdown常用快捷键

    Markdown使用的符号:井号,星号,大于号,中括号,竖线,横杠,波浪线,反引号 # ,*, > ,[],|,-,~,` 井号 + 空格:根据空格的个数显示各标题的大小 标题一 标题二 标题三 ...

  3. Egret获取和显示时间,年,月,日,时分秒

    let now = new Date(); this.nowYear = now.getFullYear(); this.nowMonth = now.getMonth() + 1; let noww ...

  4. msxfs.dll函数加载代码

    msxfs.dll函数加载代码 #include "stdafx.h" #include "WSXFSLoader.h" NS_AWP_DEVICE_WOSA_ ...

  5. XP Sp3 开机就要激活,否则无法登录windows桌面

    参考网页:https://www.reddit.com/r/sysadmin/comments/5m9240/activating_windows_xp_in_2017_still_possible/ ...

  6. vue相关文件说明(基于vue2.0)

    1.config:生产,开发环境配置参数 2.static:第三方资源,这里面的文件直接写路径,不能用'import'导入 3.node_modules:引入一些依赖包 4..babelrc:定义了E ...

  7. 《SpringMVC从入门到放肆》十四、SpringMVC分组数据校验

    上一篇我们学习了数据校验,但是在实际项目中,还是有些不够灵活,今天我们就来继续学习一种更灵活的数据校验方法——分组数据校验. 一.什么是分组校验 校验规则是定义在实体中的,而同一个实体可以被多个Con ...

  8. 远程dump导出svn项目

    使用TortoiseSVN 安装目录下的svnrdump.exe 工具进行导出 1.cmd 到工具路径下 C:\Program Files\TortoiseSVN\bin svnrdump.exe d ...

  9. lodash 实现一些常见的功能

    排序 const sorted = _.orderBy(filtered, [sortColumn.path], [sortColumn.order]); 数组切片 普通的 slice 可传递两个参数 ...

  10. 性能测试学习 第七课 --loadrunner中JavaVuser脚本的编写

    1.环境准备:      LoadRunner11----->对应JDK1.6版本(32位) LoadRunner12----->对应JDK1.7版本(32位) (一).JDK下载安装完成 ...