zoukankan      html  css  js  c++  java
  • log4net 入门使用

    log4net 是dotnet平台下的一个日记记录组件。

    一  NuGet中安装log4net包:

    二 配置log4net.config文件 

    配置文件内容:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
      <log4net>
        <!--定义输出到文件中-->
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
          <!--定义文件存放位置-->
          <file value="log\"/>
          <appendToFile value="true"/>
          <rollingStyle value="Date"/>
          <datePattern value="yyyy\yyyyMM\yyyyMMdd'.txt'"/>
          <staticLogFileName value="false"/>
          <param name="MaxSizeRollBackups" value="100"/>
          <layout type="log4net.Layout.PatternLayout">
            <!--每条日志末尾的文字说明-->
            <!--输出格式-->
            <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
            <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/>
          </layout>
        </appender>
        <root>
          <!-- 日志等级 -->
          <level value="DEBUG"/>
          <!--文件形式记录日志-->
          <appender-ref ref="RollingLogFileAppender"/>
        </root>
      </log4net>
    </configuration>
    

      

     三 配置 XmlConfigurator

       有多种方法,这里因为是在web项目下,所以我放在Global.asax文件中 

     void Application_Start(object sender, EventArgs e) 
        {
            // 在应用程序启动时运行的代码
            log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"));
        }

    四  使用

    public partial class web_Pay : BasePage
    {
        static readonly ILog log = LogHelper.GetLogger(typeof(web_Pay));
         protected void Page_Load(object sender, EventArgs e)
        {
            log.Error("error");
            log.Info("info");
        }
    }

    在这里我对 ILog进行了一层封装

        public  interface ILog
        {
    
            void Debug(object message);
    
            void Debug(object message, Exception exception);
    
            void Error(object message);
    
            void Error(object message, Exception exception);
    
            void Fatal(object message);
    
            void Fatal(object message, Exception exception);
    
            void Info(object message);
    
            void Info(object message, Exception exception);
    
            void Warn(object message);
    
            void Warn(object message, Exception exception);
        }
    
        public sealed class LogWrapper : ILog
        {
            private readonly log4net.ILog _logger;
            internal LogWrapper(Type type)
            {
                _logger = log4net.LogManager.GetLogger(type);
            }
    
            public void Debug(object message)
            {
                _logger.Debug(message);
            }
    
            public void Debug(object message, Exception exception)
            {
                _logger.Debug(message, exception);
            }
    
            public void Error(object message)
            {
                _logger.Error(message);
            }
    
            public void Error(object message, Exception exception)
            {
                _logger.Error(message, exception);
            }
    
            public void Fatal(object message)
            {
                _logger.Fatal(message);
            }
    
            public void Fatal(object message, Exception exception)
            {
                _logger.Fatal(message, exception);
            }
    
            public void Info(object message)
            {
                _logger.Info(message);
            }
    
            public void Info(object message, Exception exception)
            {
                _logger.Info(message, exception);
            }
    
            public void Warn(object message)
            {
                _logger.Warn(message);
            }
    
            public void Warn(object message, Exception exception)
            {
                _logger.Warn(message, exception);
            }
    
        }
    
        public static class LogHelper
        {
            public static ILog GetLogger(Type type)
            {
                return new LogWrapper(type);
            }
        }
  • 相关阅读:
    页面优化
    php安全开发(1)文件包含漏洞
    换工作之后需要兼容ie8的我
    vue
    最近在写h5的页面,发现有一款框架还不错给大家推荐一下
    一个控制器两个轮播
    箭头的制作
    layui
    h5视频播放
    两侧跟随广告
  • 原文地址:https://www.cnblogs.com/dragon-L/p/5853339.html
Copyright © 2011-2022 走看看