【.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神秘的面纱.

时间: 2025-01-04 11:18:10

【.NET】为什么要记录日志?的相关文章

踩坑记(1)——使用slf4j+logback记录日志

jar包版本: <spring.version>3.1.0.RELEASE</spring.version> <slf4j.version>1.7.25</slf4j.version> <logback.version>1.2.3</logback.version> <logback.ext.version>0.1.1</logback.ext.version> commons-logging:scope为pr

(JAVA)从零开始之--打印流PrintStream记录日志文件

这里的记录日志是利用打印流来实现的. 文本信息中的内容为String类型.而像文件中写入数据,我们经常用到的还有文件输出流对象FileOutputStream. 1 File file = new File("F:\\a.txt"); 2 FileOutputStream outputStream = new FileOutputStream(file,true);//第二个参数为追加文本 3 outputStream.write(97); 上面的代码执行完之后,a.txt中的内容存的

C# 使用Log4Net记录日志

最近在"伯乐在线"上看到这么篇文章<用Log4Net来记录系统的日志信息>,由于没有用到过Log4Net这个东东,就有了下面这篇文章: 第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.13-bin-newkey解压后,如下图所示: 双击bin文件夹,如下图: 双击net文件夹,选择针对.NET FramerWork的不同版本 找到相应版本的

使用log4javascript记录日志

1.定义log4js服务类,用于初始化log4javascript相关参数 log4jsService.js //启用javascript 日志功能 var logger = log4javascript.getLogger("main"); log4javascript.setEnabled(true); var appender = new log4javascript.InPageAppender(); appender.layout.pattern = '%d{yyyy-MM-

Oracle中pls_logger记录日志信息

/* 参数说明: pi_program_name 程序名称 pi_directory 写入日志文件所在的目录 pi_file 日志文件名称,必须存在 pi_log_level 日记级别,INFO.WARN.FATAL pi_write_to 写到哪里,SCREEN.FILE.TABLE.ALL pi_error_message 写入到日志的错误信息 pi_status 输出参数 1失败 0成功 */ BEGIN pls_logger ( pi_program_name => 'SCREEN_PR

java 自定义异常,记录日志简单说明!留着以后真接复制

log4j 相关配制说明:http://blog.csdn.net/liangrui1988/article/details/17435139 自定义异常 package org.rui.ExceptionTest; public class ExtraFeature { //-------使用------ public static void f()throws MyException { System.out.println("MyException from f()"); thr

centos 6.4 /var/log/secure 不记录日志的問題

先确保日志服务开启:不妨重启下日志服务:由于目前RHEL 6/centos 6已经使用rsyslog替换了syslog.,所以不要在找/etc/syslog.conf了:重启命令:/etc/init.d/rsyslog restart尝试ssh重新登录進行测试,secure有信息了問題解决centos 6.4 /var/log/secure 不记录日志的問題,布布扣,bubuko.com

使用Flask时,如何记录日志

我们在开发基于Flask的Web应用时,往往容易忽略了对日志的使用,而在Flask的官方文档中,对日志这块的介绍也仅仅停留在如何与系统集成上.记录日志这个看似很简单的事情,在实际中很多人却不一定能做好,要么不知道何时进行日志记录,要么就是记录的日志然并卵.所以,今天就来说说记录日志这件小事,希望对大家学习flask有所帮助. 说它是件小事,因为它的确不会影响你系统的正常流程,有没有它系统都能跑起来,也正因为这样,很多人便忽略了日志的处理,或者干脆都没有配置日志输出,整个系统没有任何日志输出(Ng

PHP实现记录日志(文件)

PHP实现记录日志(文件) php php 记录日志 项目中经常会记录些操作信息,或是打印些关键变量,或者是导入excel文件,提现记录,都需记录.经常遇到,封装一个方法,有不好的地方或补充请留言. header('Content-Type: text/html; charset=UTF-8'); #记录文件 $dir 文件目录:$filename 文件名:$data 存贮数据:$Separator 分隔符 function RecordsFile( $dir,$filename,$data=a

C#记录日志到文本文件

在配置文件中添加日志文件的存放路径: 1 <appSettings> 2 <add key="LogPath" value="H:\Logs" /> 3 </appSettings> 封装一个记录日志的类: 1 public class SystemLog 2 { 3 public static void WriteLogLine(string exceptionMessage) 4 { 5 string path = strin