在实际开发或试运行过程中,我们有时需要查看或分析模块执行的所有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///
/// 写入sql查询句日志
///
///
publicvirtualvoidWriteLog(stringcommandText)
{
stringfileName = DateTime.Now.ToString(SystemInfo.DateFormat) +" _ "+this.FileName;
WriteLog(commandText, fileName);
}
///
/// 写入sql查询句日志
///
/// 异常
/// 文件名
publicvirtualvoidWriteLog(stringcommandText,stringfileName =null)
{
if(string.IsNullOrEmpty(fileName))
{
fileName = DateTime.Now.ToString(SystemInfo.DateFormat) +" _ "+this.FileName;
}
stringreturnValue =string.Empty;
// 系统里应该可以配置是否记录异常现象
if(!SystemInfo.LogSQL)
{
return;
}
// 将异常信息写入本地文件中
stringlogDirectory = SystemInfo.StartupPath +@"\\Log\\Query";
if(!System.IO.Directory.Exists(logDirectory))
{
System.IO.Directory.CreateDirectory(logDirectory);
}
stringwriterFileName = logDirectory +"\\"+ fileName;
if(!File.Exists(writerFileName))
{
FileStream FileStream =newFileStream(writerFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
FileStream.Close();
}
StreamWriter streamWriter =newStreamWriter(writerFileName,true, Encoding.Default);
streamWriter.WriteLine(DateTime.Now.ToString(SystemInfo.DateTimeFormat) +" "+ commandText);
streamWriter.Close();
}
publicvirtualvoidWriteLog(stringcommandText, IDbDataParameter[] dbParameters =null,stringfileName =null)
{
// 系统里应该可以配置是否记录异常现象
if(!SystemInfo.LogSQL)
{
return;
}
if(string.IsNullOrEmpty(fileName))
{
fileName = DateTime.Now.ToString(SystemInfo.DateFormat) +" _ "+ FileName;
}
stringmessage =string.Empty;
message = DateTime.Now.ToString(SystemInfo.DateTimeFormat) + System.Environment.NewLine +"commandText内容"+ System.Environment.NewLine + commandText;
if(dbParameters !=null)
{
StringBuilder sb =newStringBuilder();
foreach(varparameterindbParameters)
{
sb.AppendLine(parameter.ParameterName +"="+ parameter.Value);
}
message += System.Environment.NewLine +"dbParameters内容"+ System.Environment.NewLine + sb.ToString();
}
stringlogDirectory = SystemInfo.StartupPath +@"\Log\Query";
if(!System.IO.Directory.Exists(logDirectory))
{
System.IO.Directory.CreateDirectory(logDirectory);
}
stringwriterFileName = logDirectory +"\\"+ fileName;
if(!File.Exists(writerFileName))
{
FileStream FileStream =newFileStream(writerFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
FileStream.Close();
}
StreamWriter streamWriter =newStreamWriter(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框架官方公众微信(微信号:rdiframework-net),及时了解最新动态。
扫描二维码立即关注
作者:EricHu
Email:406590790@qq.com
QQ交流:406590790
框架官网:http://www.rdiframework.net/
框架官网博客:http://blog.rdiframework.net/
框架其他博客:http://blog.csdn.net/chinahuyong
RDIFramework.NET,基于.NET的快速信息化系统开发、整合框架,给用户和开发者最佳的.Net框架部署方案。
关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,在面向对象、面向服务以及数据库领域有一定的造诣。现主要从事基于RDIFramework.NET框架的技术开发、咨询工作,主要服务于金融、医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。
如有问题或建议,请多多赐教!
2024 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123