首页 > 代码库 > 【.NET】为什么要记录日志?
【.NET】为什么要记录日志?
本来想把将错误日志写入文件的代码拿出来分享一下,想起上篇博文配置文件中已经贴了部分源码,这里便不再重复.我本在log4net之上又进行了封装,为的是不必依赖于log4net.大家都知道日志框架有很多,我们不一定非要依附于log4net.针对接口编程还是要一直记得这事滴!
先补充一点,单独写一个配置文件后如何读取的问题.
添加资源文件,将配置文件添加到资源文件中,给个截图参考:
InitLog4netConfig类.读取配置文件.
/// <summary> /// 初始化/载入配置文件 /// </summary> public class InitLog4netConfig { /// <summary> /// 载入读取配置文件 /// </summary> public static void Init() { string str = LogManagerResource.log4net; MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(str)); log4net.Config.XmlConfigurator.Configure(ms); } }
下面说说做日志过程中遇到的小纠结.
希望直接以系统名称作为loggername,前台开发人员不必去问写到数据库还是文件,一切交给我来判断吧.于是,我要弄两个配置文件么?或者两份日志类库,一个写到数据库的,一个写到文件的?额,着实不能,困扰了许久,还是决定由前台传值时区分一下吧,这样ASystemDB和ASystemFile便可以共存了.
打包好dll类库,发布文档后,给各子系统开发人员讲解类库如何使用,大家对于技术的理解还是如我所愿的,可是很快我就意识到日志这个东西,还得好好琢磨一下它到底怎么使.
我们的教育云平台上只记录了错误日志和操作日志.其实系统日志共有系统执行错误日志,系统可控错误日志,用户操作日志和系统运行日志四大类.错误日志就是try..catch..中抛出的那些未能预料到的系统错误,一般会影响系统正常运行.系统可控的错误日志也属于错误,但不至于导致系统异常.操作日志量特别大,这类日志记录了用户的操作,通过日志跟踪用户行为进行分析,就是数据挖掘的好东东.至于系统运行日志就是记录了系统运行时的情况.
记录日志有这么几条需要注意的地方.
错误日志:
catch到的异常导致系统突然退出或者黄页要记录下堆栈信息.以便快速定位此种错误发生位置.系统开发过程中要捕获并处理异常,但抛出就不必再记录了.记录日志要使用exception.tostring().
操作日志:
操作日志记录太频繁会导致系统IO消耗从而性能下降,我们使用缓存,在日志数量达到一定时一次性写入.日志记录要有价值,方便数据分析,如收集客户偏好,更全心全意地为人民服务以及探索更多需求,突出系统重点和亮点.
就在我以为完成了任务之后的当天下午,发现被AOP这个思想包装后的日志将会是更好的选择.于是继续封装.
下一篇揭开AOP神秘的面纱.
【.NET】为什么要记录日志?