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,如下圖:

方法參考:
/// <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),及時了解最新動態。
掃描二維碼立即關注

作者:
RDIF
出處:
http://www.rzrgm.cn/huyong/
Email:
406590790@qq.com
QQ:
406590790
微信:
13005007127(同手機號)
框架官網:
http://www.guosisoft.com/
http://www.rdiframework.net/
框架其他博客:
http://blog.csdn.net/chinahuyong
http://www.rzrgm.cn/huyong
國思RDIF開發框架
,
給用戶和開發者最佳的.Net框架平臺方案,為企業快速構建跨平臺、企業級的應用提供強大支持。
關于作者:系統架構師、信息系統項目管理師、DBA。專注于微軟平臺項目架構、管理和企業解決方案,多年項目開發與管理經驗,曾多次組織并開發多個大型項目,在面向對象、面向服務以及數據庫領域有一定的造詣。現主要從事基于
RDIF
框架的技術開發、咨詢工作,主要服務于金融、醫療衛生、鐵路、電信、物流、物聯網、制造、零售等行業。
如有問題或建議,請多多賜教!
本文版權歸作者和CNBLOGS博客共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,可以通過微信、郵箱、QQ等聯系我,非常感謝。

浙公網安備 33010602011771號