<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      RDIFramework.NET ━ .NET快速信息化系統開發框架 V3.2->新增記錄SQL執行過程

        有時我們需要記錄整個系統運行的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),及時了解最新動態。

             掃描二維碼立即關注

      posted @ 2017-03-02 15:11  .NET快速開發框架  閱讀(603)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩精品国产二区三区| 国产在线线精品宅男网址| h无码精品3d动漫在线观看| 亚洲精品无码久久毛片| 亚洲人妻一区二区精品| 国产精品久久久久久av| 日韩精品18禁一区二区| 日韩中文字幕亚洲精品| 亚洲国产精品久久久天堂麻豆宅男| 久久99精品久久久大学生| 国产免费午夜福利片在线| 四虎www永久在线精品| 亚洲精品韩国一区二区| аⅴ天堂中文在线网| 人妻人人妻a乱人伦青椒视频| 老司机免费的精品视频| 婷婷99视频精品全部在线观看| 中文字幕乱码一区二区免费| 新泰市| 国产偷国产偷亚洲高清人| 中文字幕国产精品自拍| 日本电影一区二区三区| 国产精品一区二区久久毛片| 亚洲最大日韩精品一区| 性欧美老人牲交xxxxx视频| 黄又色又污又爽又高潮| 久久一区二区中文字幕| 国产精品人妻一区二区高 | 国产精品办公室沙发| 亚洲精品乱码久久久久久中文字幕 | 国产乱久久亚洲国产精品| 亚洲成人av在线高清| 免费人成视频在线观看不卡| 疯狂做受xxxx高潮视频免费| 亚洲国产精品成人无码区| 少妇被躁爽到高潮无码文| 亚洲热无码av一区二区东京热av| 55大东北熟女啪啪嗷嗷叫| 中国女人大白屁股ass| 久久精品第九区免费观看| 久久不见久久见免费视频观看|