博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用log4net做应用程序全局日志记录保存在数据库中
阅读量:5907 次
发布时间:2019-06-19

本文共 3133 字,大约阅读时间需要 10 分钟。

  几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。经验表明,日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug;一旦在程序中加入了Log 输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。另外,日志信息可以输出到不同的地方(控制台,文件等)以备以后研究之用。

Log4net就是为这样一个目的设计的,用于.NET开发环境的日志记录包。

官方网站:

 

1、引用程序包

 

2、新增配置文件log4net.db.config,包含访问的数据库连接字符串,表名等配置信息

 

3、在Global.asax中让log4net读取配置文件信息

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;using System.Web.Mvc;using System.Web.Optimization;using System.Web.Routing;namespace DDNote{    public class MvcApplication : System.Web.HttpApplication    {        protected void Application_Start()        {            AreaRegistration.RegisterAllAreas();            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);            RouteConfig.RegisterRoutes(RouteTable.Routes);            BundleConfig.RegisterBundles(BundleTable.Bundles);            ConfigLog4Net();        }        private void ConfigLog4Net()        {            var log4NetConfig = Server.MapPath("Config/log4net.db.config");            if (File.Exists(log4NetConfig))            {                var configFile = new FileInfo(log4NetConfig);                log4net.Config.XmlConfigurator.Configure(configFile);            }        }    }}

 

4、封装全局公共类--LogManager

 

using System;using System.Collections.Generic;using System.Linq;using System.Reflection;using System.Web;namespace DDNote.Common{    public class LogManager    {        ///         /// 日志记录        ///         /// 要记录的键        /// 要记录的值        public static void LogInfo(string key, string value)        {            MethodBase method = new System.Diagnostics.StackTrace().GetFrame(1).GetMethod();            //调用日志的类名            String className = method.ReflectedType.FullName;            //调用日志的方法名            String methodName = method.Name;            //记录日志            log4net.ILog log = log4net.LogManager.GetLogger(className);            log.Info(methodName + "//" + key + "//" + value);        }    }}

 

5、方法调用

string userName = Request.Form["UserName"];                string passWord = Request.Form["PassWord"];                LogManager.LogInfo("username", userName);                LogManager.LogInfo("password", passWord);

 

6、数据库保存的日志信息

log4net提供记录日志的时间、线程、级别等...功能强大,有兴趣的园友可以深入研究一下。

转载于:https://www.cnblogs.com/heresion/p/20161109_log4net.html

你可能感兴趣的文章
正确删除归档日志
查看>>
Spring 3支持RESTful API/APP配置示例
查看>>
Dell R710服务器磁盘恢复数据库一例(记录)
查看>>
一个专业网管的工作笔记(超级珍藏)
查看>>
rails中实现上传功能
查看>>
SQL Server column not allow Null,insert failed
查看>>
运维老鸟分享-学好Linux技术大绝招
查看>>
一次嵌套循环的优化
查看>>
Zabbix 3.2.6 通过Orabbix监控Oracle数据库
查看>>
mongo shell启动配置文件.mongorc.js(二)
查看>>
服务器与内存
查看>>
SCVMM2008实战之虚拟机安装
查看>>
Exchange Server邮箱管理
查看>>
在Android(OPhone)模拟器中加载和使用SDCard卡
查看>>
Windows Server 2008 显示隐藏文件 扩展名 和隐藏的文件
查看>>
linux(虚拟机中)与windows共享文件两种方法
查看>>
Exchange 2013信息权限保护之ADRMS安装
查看>>
在图书馆里寻找清静的自我
查看>>
X5平方速算法的证明
查看>>
面试题解(2):loop相关
查看>>