Log 静态类介绍:

Public Static (Shared) Methods

GetExceptionMessage 获取异常的内部信息
WriteLogToDB Overloaded. 将日志写到数据库中[需要配置LogConn项后方生效 ]
WriteLogToTxt Overloaded. 将日志写到外部txt[web.config中配置路径,配置项为Logpath,默认路径为 "Logs/" ] 

说明:

1:这个类很简单,主要的使用方法只有:WriteLogToTxt。

2:WriteLogToDB这个方法(只是SysLogs的简单封装用法,内部用的较多,后续可能会屏蔽此方法,可以暂不介绍)。

3:GetExceptionMessage只是从Exception里获取字符串,所以没啥好说。

Log类的Demo代码:

 static void Main(string[] args)
{
ExeLog();
// ExeSysLog();
Console.Read();
} static void ExeLog()
{
AppConfig.Log.IsWriteLog = true;
AppConfig.Log.LogPath = "自定义错误日志";
Log.WriteLogToTxt("这是错误信息");
Log.WriteLogToTxt("这是错误信息", LogType.Assert);
Log.WriteLogToTxt("这是错误信息", LogType.Debug);
Log.WriteLogToTxt("这是错误信息", LogType.Error);
Log.WriteLogToTxt("这是错误信息", LogType.Info);
Log.WriteLogToTxt("这是错误信息", LogType.Warn);
Console.WriteLine("请查看Debug目录");
}

运行后的目录情况:

说明:

1:AppConfig类对应属性都是可以配置在Web.Config或App.Config,示例代码中直接用代码配置了。

2:IsWriteLog要配置为True,才会写文本(不配置默认抛异常,不写日志)。

SysLogs 实例类:

Public Instance Properties

CreateTime 创建时间
ID 标识主键
LogType 日志类型
Message 日志内容
PageUrl 请求的地址
UserName 记录者用户名 

说明:

1:SysLogs该类主要用来写数据库日志用(Log类是写文本)。

2:需要配置LogConn的数据库链接,如果和默认在同一个数据库,配置LogConn为Conn即可。

3:实例后用Insert方法即可。

SysLogs 类的Demo代码:

static void ExeSysLog()
{
AppConfig.Log.LogConn = "txt path={0}txtdb";//演示只有用文本数据库来演示了
AppConfig.Log.LogTableName = "MyLogs";//可以更改表名
using (SysLogs sl=new SysLogs())//往数据库里写一条错误日志
{
sl.Message = "这是错误信息";
sl.PageUrl = “http://code.taobao.org/svn/cyqopen/trunk/CYQ.Data.GettingStarted/”;
sl.UserName = "路过秋天";
sl.LogType = "Sys";
sl.Insert();
List<SysLogs> list = sl.Select<SysLogs>();
Console.WriteLine("现在的有:" + list.Count + "条数据");
} //
Log.WriteLogToDB("呵呵", LogType.Error, "cyq");//和使用sysLogs一样。
}

说明:

1:需要指定LogConn:数据库对应的链接。

2:指定LogTableName:指定表名(不指定则默认表名为SysLogs)

3:如果默认没有对应的表,会自动创建。

4:实例后就是普通ORM的增删改查操作。

5:简化的写法是调用Log.WriteLogToDB。

总结:

经过不断的优化各简化后,最终对外的使用方法灰常的简单。

项目的Demo示例源码,用SVN checkout:http://code.taobao.org/svn/cyqopen/trunk/CYQ.Data.GettingStarted/

最后谢谢大伙的支持!

CYQ.Data V5 从入门到放弃ORM系列:教程 - Log、SysLogs两个日志类使用的更多相关文章

  1. CYQ.Data V5 从入门到放弃ORM系列:框架的优势

    前言: 框架开源后,学习使用的人越来越多了,所以我也更加积极的用代码回应了. 在框架完成了:数据库读写分离功能 和 分布式缓存功能 后: 经过三天三夜的不眠不休,终于完成框架第三个重量级的功能:自动化 ...

  2. CYQ.Data V5 从入门到放弃ORM系列:教程 - AppConfig、AppDebug类的使用

    1:AppConfig类的介绍: Public Static (Shared) Properties IsEnumToInt 是否使用表字段枚举转Int方式(默认为false). 设置为true时,可 ...

  3. CYQ.Data V5 从入门到放弃ORM系列:教程 - MProc类使用

    MProc介绍 MProc:是一个用于执行SQL或存储过程的数据库操作类,它轻量高性能地类似于Dapper. MProc:它出现的场景很少,因为MAction自身就能处理掉90%-100%的数据操作( ...

  4. CYQ.Data V5 从入门到放弃ORM系列:教程 - MAction类使用

    背景: 随着V5框架使用者的快速增加,终于促使我开始对整个框架编写完整的Demo. 上周大概花了一星期的时间,每天写到夜里3点半,终完成了框架所有功能的Demo. 同时,按V5框架名称空间的顺序,对每 ...

  5. CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

    前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...

  6. 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了

    前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说 ...

  7. 终于等到你:CYQ.Data V5系列 (ORM数据层,支持.NET Core)最新版本开源了

    前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说 ...

  8. CYQ.Data V5 分布式自动化缓存设计介绍(二)

    前言: 最近一段时间,开始了<IT连>创业,所以精力和写的文章多数是在分享创业的过程. 而关于本人三大框架CYQ.Data.Aries.Taurus.MVC的相关文章,基本都很少写了. 但 ...

  9. CYQ.Data V5 分布式缓存Redis应用开发及实现算法原理介绍

    前言: 自从CYQ.Data框架出了数据库读写分离.分布式缓存MemCache.自动缓存等大功能之后,就进入了频繁的细节打磨优化阶段. 从以下的更新列表就可以看出来了,3个月更新了100条次功能: 3 ...

随机推荐

  1. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  2. IE6/7下空div占用空间的问题

    最近注意力没在前端上面,工作碰到这样一个问题,下意识的写了句 font-size:0;line-height:0;哪知道引发了更大的bug.后来插入数据进去的时候都不显示了..再后来百度一番找到,原来 ...

  3. HTML DOM 对象

    本篇主要介绍HTML DOM 对象:Document.Element.Attr.Event等4个对象. 目录 1. Document 对象:表示文档树的根节点,大部分属性和方法都是对元素进行操作. 2 ...

  4. 【Machine Learning】决策树案例:基于python的商品购买能力预测系统

    决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...

  5. nodejs利用ajax实现网页无刷新上传图片

    nodejs利用ajax实现网页无刷新上传图片 标签(空格分隔): nodejs 通常情况下上传图片是要通过提交form表单来实现的,但是这又不可避免的产生了网页转. 利用ajax技术和FormDat ...

  6. 初学seaJs模块化开发,利用grunt打包,减少http请求

    原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...

  7. StatePattern(状态模式)

    /** * 状态模式 * @author TMAC-J * 状态模式和策略模式很像,其实仔细研究发现完全不一样 * 策略模式各策略之间没有任何关系,独立的 * 状态模式各状态之间接口方法都是一样的 * ...

  8. BPM配置故事之案例2-文本默认值

    Boss感觉方便了很多,然而采购部采购员阿海却还是有点意见,他跑来找小明. 阿海:现在申请都是我在提交,申请人和申请部门能不能不要每次都要填写啊,好麻烦的. 小明:没问题,这个简单. 小明在表单中把申 ...

  9. ExecuteOrDelayUntilScriptLoaded 还是 SP.SOD.executeFunc?

    SharePoint 客户端 JS 开发时,要等待 SharePoint 对象都加载完毕再调用自己的方法(myFunction),可以有两种方式: ExecuteOrDelayUntilScriptL ...

  10. x01.os.23: 制作 linux LiveCD

    1.首先运行如下命令  sudo apt-get install wget bc build-essential gawk genisoimage 2.下载如下资源,make all 即可 http: ...