zoukankan      html  css  js  c++  java
  • log4net

    log4net

    1.在Web.config配置文件中,给configuration添加第一个第二个子节点如下:

      <configSections>
        <!--日志配置-->
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
      </configSections>
      <log4net>
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="App_Data/Log/" />
          <param name="AppendToFile" value="true" />
          <param name="MaxSizeRollBackups" value="10" />
          <param name="StaticLogFileName" value="false" />
          <param name="DatePattern" value="yyyy-MM-dd'.txt'" />
          <param name="RollingStyle" value="Date" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:fff} [%thread] %-5level %logger %ndc - %message%newline" />
          </layout>
        </appender>
        <appender name="ErrorLogAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="App_Data/Log/" />
          <param name="AppendToFile" value="true" />
          <param name="MaxSizeRollBackups" value="10" />
          <param name="StaticLogFileName" value="false" />
          <param name="DatePattern" value="yyyy-MM-dd'-error.txt'" />
          <param name="RollingStyle" value="Date" />
          <layout type="log4net.Layout.PatternLayout">
            <!--输出格式-->
            <param name="ConversionPattern" value="%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />
          </layout>
        </appender>
        <!--<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
          <param name="File" value="App_Data/Log/log.txt" />
          <param name="AppendToFile" value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="Header" value="[Header] " />
            <param name="Footer" value="[Footer] " />
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n" />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="WARN" />
          </filter>
        </appender>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
          </layout>
        </appender>-->
        <root>
        </root>
        <logger additivity="true" name="InfoLog">
          <level value="INFO" />
          <appender-ref ref="RollingLogFileAppender" />
        </logger>
        <logger additivity="true" name="ErrorLog">
          <level value="ERROR" />
          <appender-ref ref="ErrorLogAppender" />
        </logger>
    
      </log4net>
    log4net节点的另一配置方法
    <log4net>
        <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
          <param name="File" value="App_Data/Log/info.txt" />
          <param name="AppendToFile" value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:fff} [%thread] %-5level %logger %ndc - %message%newline" />
          </layout>
        </appender>
        <appender name="ErrorLogAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="App_Data/Log/error.txt" />
          <param name="AppendToFile" value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <!--输出格式-->
            <param name="ConversionPattern" value="%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />
          </layout>
        </appender>
        <root>
        </root>
        <logger additivity="true" name="InfoLog">
          <level value="INFO" />
          <appender-ref ref="LogFileAppender" />
        </logger>
        <logger additivity="true" name="ErrorLog">
          <level value="ERROR" />
          <appender-ref ref="ErrorLogAppender" />
        </logger>
      </log4net>

    2.新增Logger类

     public static class Logger
        {
            private static ILog InfoLog= log4net.LogManager.GetLogger("InfoLog");//获取一个日志记录器
            private static ILog ErrorLog = log4net.LogManager.GetLogger("ErrorLog");//获取一个日志记录器
            public static void Info(string message)
            {            
                InfoLog.Info(message);
            }
            public static void Error( string error)
            {
                ErrorLog.Error(error);
            }
            public static void Error(Exception ex, string error)
            {
                ErrorLog.Error(error,ex);
            }
            public static void Warn(string message)
            {            
                InfoLog.Warn(message);
            }
        }

    3.在Global.asax.cs的Application_Start方法中调用 log4net.Config.XmlConfigurator.Configure();

    4.调用示例

    Logger.Info("提示信息");
    Logger.Error("错误信息");

    5.效果

     注:

    文件名累加的解决方法:

    在appender节点里添加:
    <!--最小锁定模型以允许多个进程可以写入同一个文件-->
    <param name="lockingModel"  type="log4net.Appender.FileAppender+MinimalLock" />
  • 相关阅读:
    设计模式之-简单工厂模式
    C# 汉语转拼音
    深入理解DIP、IoC、DI以及IoC容器
    C# 各种帮助类大全
    C# TCP多线程服务器示例
    【AtCoder】AGC004
    【AtCoder】ARC061
    【AtCoder】CODE FESTIVAL 2016 qual A
    【AtCoder】AGC005
    【AtCoder】CODE FESTIVAL 2016 qual B
  • 原文地址:https://www.cnblogs.com/yoyo2019/p/10818330.html
Copyright © 2011-2022 走看看