`

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

 

0
0
分享到:
评论

相关推荐

    rdiframework.net代码生成器 v5.1版本

    RDIFramework.NET代码生成器集代码生成、各数据库对象文档生成、数据库常用管理于一身,是软件开发者快速开发的神器。代码的生成支持基于数据库与PowerDesign设计文件生成,为企业及个人开发者能快速生成常用代码与...

    RDIFramework.NET 工作流产品说明书 V3.0.pdf

    【RDIFramework.NET 工作流产品说明书 V3.0】是柯锐特软件公司推出的一款基于.NET框架的快速信息化系统开发整合框架的工作流组件。该组件设计与研发结合了RDIFramework.NET多年的项目经验和实践,旨在提供一套高效、...

    人才网站设计-asp.net+sql-(系统源码)

    人才网站设计-asp.net+sql-(系统源码)人才网站设计-asp.net+sql-(系统源码)人才网站设计-asp.net+sql-(系统源码)人才网站设计-asp.net+sql-(系统源码)人才网站设计-asp.net+sql-(系统源码)人才网站设计-...

    ASP.NET2.0+SQLServer网络应用系统开发案例精解

    ASP.NET2.0+SQLServer网络应用系统开发案例精解&lt;br&gt;这是我在实习的时候购买《ASP.NET2.0+SQLServer网络应用系统开发案例精解》这本书时附送的各应用系统的源代码!~系统采用VS2005+SQLSERVER2000+C#编写!~已经通过...

    .NET快速开发整合框架

    .NET快速开发整合框架是一种高效的开发工具,它集成了多种功能,旨在加速.NET应用程序的开发过程。这个框架可能包含了丰富的公共类库,提供了大量的预定义函数和模块,使得开发者无需从零开始编写代码,就能快速构建...

    快速开发框架C#源码完全开源版 基于ASP.NET MVC+EF6+Bootstrap框架等

    1、一套基于ASP.NET MVC+EF6+Bootstrap开发出来的框架,源代码完全开源,可以帮助你解决C#以及.NET项目68%的重复工作,让开发人员远离加班。 2、使用ApacheLicense2.0协议,采用主流框架,容易上手,简单易学,学习...

    .Net Core快速开发框架源码

    当时公司要建自己的内部OA系统,同时有CRM相关功能需求,为了快速开发购买的这个快速开发框架,但是基础功能不完全满足我们使用,所以我们在该框架基础上进行了优化和功能扩充; 设计理念真的不错,希望能给同行小...

    asp.net core敏捷开发框架c#源码

    ASP.NET Core是一个由微软开发的开源、跨平台的web应用框架,它是在.NET Core基础上构建的,用于构建高性能、模块化的互联网规模的应用程序。这个"asp.net core敏捷开发框架c#源码"提供了完整的C#源代码,适用于那些...

    一套通用的Easyui+asp.net mvc开发框架源码

    【标题】"一套通用的Easyui+asp.net mvc开发框架源码"揭示了这是一个用于...开发者可以在此基础上进行定制化开发,满足特定业务需求,同时得益于asp.net MVC5的高级特性和Easyui的易用性,开发过程将更加高效和顺畅。

    ASP.NET 2.0 + SQL Server网络应用系统开发案例精解

    《ASP.NET 2.0 + SQL Server网络应用系统开发案例精解》这本书主要涵盖了使用ASP.NET 2.0技术和SQL Server数据库进行网络应用系统开发的相关知识。在这个领域,开发者需要理解如何有效地结合这两种技术来构建高效、...

    .NET通用权限系统快速开发框架

    .NET通用权限系统快速开发框架是一种高效且灵活的开发工具,专为构建OA(办公自动化)、ERP(企业资源规划)和CRM(客户关系管理)等应用软件系统而设计。该框架的核心在于权限管理,旨在帮助开发者快速搭建具备完整...

    C#.NET快速开发框架_V1.1程序

    总的来说,C#.NET快速开发框架_V1.1是一个全面的开发工具集,涵盖了从项目初始化、代码编写、数据库设计、测试到部署的全过程,极大地提升了C#开发者的工作效率。通过使用这个框架,开发者可以更加专注于业务逻辑的...

    最新版ASP.NET MVC5+EF6后台管理系统 Ymnets快速开发框架源码 带工作流

    Ymnets快速开发框架是基于这些技术的后台管理系统,它旨在简化开发过程,提供工作流支持,并包含部署文档和数据字典,以帮助开发者更快地理解和使用该系统。 首先,让我们深入理解ASP.NET MVC5。ASP.NET MVC是一种...

    VB.NET 开发程序【学校信息系统源码.zip】.zip

    陈表达SQL server开发程序案例:VB.NET 开发程序【学校信息系统exe.zip】 本程序应用技术:1、SQL自定义函数,减少每次使用连接过程语句, 2、使用dataset缓存表管理datagridview控件的视图 3、使用sql查询数据库...

    asp.net mvc 快速开发框架权限管理系统

    【标题】"asp.net MVC 快速开发框架权限管理系统"是一个专为开发者设计的高效解决方案,旨在加速Web应用程序的开发过程,特别是在构建涉及用户权限管理的项目时。它基于Microsoft的ASP.NET MVC技术栈,利用Entity ...

    asp.net+sql人才网站设计-含系统源码

    asp.net+sql人才网站设计-含系统源码asp.net+sql人才网站设计-含系统源码asp.net+sql人才网站设计-含系统源码asp.net+sql人才网站设计-含系统源码asp.net+sql人才网站设计-含系统源码asp.net+sql人才网站设计-含系统...

    ASP.NET+SQLServer网络应用系统开发与实例(光盘下载)

    《ASP.NET+SQLServer网络应用系统开发与实例》是一本深度探讨如何利用ASP.NET技术和SQL Server数据库进行网络应用系统开发的专业书籍。通过光盘下载的形式,读者可以获得丰富的实例代码和教学资源,进一步提升实践...

    ThinkPhp3.2-wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b

    1. **快速开发**:ThinkPHP3.2的快速开发特性,结合WAMPserver的即装即用特性,让开发者能够迅速搭建项目框架,节省时间成本。 2. **性能优化**:Apache2.4的性能提升和PHP5.5的语法优化,使得运行ThinkPHP3.2的应用...

    ASP.NET WebForm通用权限系统框架源码 二次开发框架 .net框架VS2010+sqlserever.rar

    ASP.NET WebForm通用权限系统框架源码 二次开发框架 .net框架 手风琴+树风格 DB_SqlServer 源码其部署 平台:VS2010+,Sql Server, ASP.NET 配置更改:更改BPMS.WEB\XmlConfig\Config.xml下的数据库连接字符...

Global site tag (gtag.js) - Google Analytics