只要设置LogSQL为True,框架就会自动记录所有Sql执行过程并保存到指定目录,一般默认在Web项目根目录的Log文件夹下,如下图:
2、查看记录的Sql。
打开一个文件,查年记录的Sql情况,如下:
二、WinForm记录Sql执行情况
WinForm项目记录Sql与Web类似,一样的要修改Config.xml中的记录Sql的配置项,如下图所示。
通过上面的配置后,一样的我们打开框架做一些操作后查看记录的Sql情况,如下图:
三、公共方法调用
如果我们需要单独记录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
82
83
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
作者: **EricHu
**出处:http://www.cnblogs.com/huyong/ Email:406590790@qq.com QQ交流:406590790 框架官网:http://www.rdiframework.net/ 框架官网博客:http://blog.rdiframework.net/ 框架其他博客:http://blog.csdn.net/chinahuyong http://www.cnblogs.com/huyong RDIFramework.NET,基于.NET的快速信息化系统开发、整合框架,给用户和开发者最佳的.Net框架部署方案。 关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,在面向对象、面向服务以及数据库领域有一定的造诣。现主要从事基于 RDIFramework.NET 框架的技术开发、咨询工作,主要服务于金融、医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。
欢迎关注RDIFramework.NET框架官方公众微信(微信号:guosisoft),及时了解最新动态。
扫描二维码立即关注
image
网友评论