首页 > 代码库 > 【.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,前台开发人员不必去问写到数据库还是文件,一切交给我来判断吧.于是,我要弄两个配置文件么?或者两份日志类库,一个写到数据库的,一个写到文件的?,着实不能,困扰了许久,还是决定由前台传值时区分一下吧,这样ASystemDBASystemFile便可以共存了.

 

        打包好dll类库,发布文档后,给各子系统开发人员讲解类库如何使用,大家对于技术的理解还是如我所愿的,可是很快我就意识到日志这个东西,还得好好琢磨一下它到底怎么使.


       我们的教育云平台上只记录了错误日志和操作日志.其实系统日志共有系统执行错误日志,系统可控错误日志,用户操作日志和系统运行日志四大类.错误日志就是try..catch..中抛出的那些未能预料到的系统错误,一般会影响系统正常运行.系统可控的错误日志也属于错误,但不至于导致系统异常.操作日志量特别大,这类日志记录了用户的操作,通过日志跟踪用户行为进行分析,就是数据挖掘的好东东.至于系统运行日志就是记录了系统运行时的情况.

记录日志有这么几条需要注意的地方.


错误日志:

catch到的异常导致系统突然退出或者黄页要记录下堆栈信息.以便快速定位此种错误发生位置.系统开发过程中要捕获并处理异常,但抛出就不必再记录了.记录日志要使用exception.tostring().

 

操作日志:

操作日志记录太频繁会导致系统IO消耗从而性能下降,我们使用缓存,在日志数量达到一定时一次性写入.日志记录要有价值,方便数据分析,如收集客户偏好,更全心全意地为人民服务以及探索更多需求,突出系统重点和亮点.


        就在我以为完成了任务之后的当天下午,发现被AOP这个思想包装后的日志将会是更好的选择.于是继续封装.

        下一篇揭开AOP神秘的面纱.





【.NET】为什么要记录日志?