C#使用log4net记录日志

从网上查的一些方法,自己也使用了,记录下来以后可能还会用到。

MVC5下使用log4net.dll

第一步:在项目中添加对log4net.dll的引用(通过NuGet可以直接安装)

第二步:Global.asax下添加方法

   protected void Application_Error(Object sender, EventArgs e)

        {

            Exception objExp = HttpContext.Current.Server.GetLastError();

            LogHelper.WriteLog("\r\n客户机IP:" + Request.UserHostAddress

                + "\r\n错误地址:" + Request.Url

                + "\r\n异常信息:" + Server.GetLastError().Message, objExp);

        }

第三步:添加配置文件(修改配置文件),我在这里是添加配置文件log4net.config

配置内容网上有很多,直接复制即可使用,路径和日志级别可以自定义修改

当前使用的配置:

 

   

 

 

   

     

     

   

   

     

     

   

   

     

     

     

     

     

     

     

     

     

     

     


     

     

     

       

     

   

   

     

     

     

     

     

     

     

     

     

     

     

     

     

     

       

     

   

 

第四步:AssemblyInfo.cs 中添加  [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

(一定要添加,配置名要一致)

第五步,代码实现

LogHelper.cs

///

    /// LogHelper的摘要说明。 

    ///

 

    public class LogHelper

    {

        private LogHelper()

        {

        }

        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");  //选择的配置

        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");  //选择的配置

        ///

        /// 默认配置。按配置文件

        ///

        public static void SetConfig()

        {

            log4net.Config.XmlConfigurator.Configure();

        }

        ///

        /// 手动设置,作用未知

        ///

        ///

        public static void SetConfig(FileInfo configFile)

        {

            log4net.Config.XmlConfigurator.Configure(configFile);

        }

        ///

        /// 写信息。

        ///

        ///

        public static void WriteLog(string info)

        {

            if (loginfo.IsInfoEnabled)

            {

                loginfo.Info(info);

            }

        }

        ///

        /// 写日志。出错时会写入

        ///

        ///

        ///

        public static void WriteLog(string info, Exception se)

        {

            if (logerror.IsErrorEnabled)

            {

                logerror.Error(info, se);

            }

        }

    }

//可以自己自定义更多级别

最后调用, LogHelper.WriteLog(xx)

发布后如果还没有记录,将配置文件log4net.config放在bin文件夹下试试

网上有很多更详细的操作,在这里记录一下自己学习之后怎么调用,第四步配置的地方开始没有一直记录不上日志。

你可能感兴趣的:(C#使用log4net记录日志)