.Net log4net 日志配置

参考链接

介绍

log4net是用来记录系统运行以及错误信息。 //todo 未将保存到增加数据库。后期考虑去做(操作日志啥的)

1.Nuget安装 log4net

2.在AssemblyInfo.cs文件中添加log4net.dll的参数。

项目-Properties-AssemblyInfo.cs

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4Net.config", Watch = true)]

3.增加配置文件 log4Net.config

放入根目录。//个人习惯放于log4NetServe 文件夹下面 这个会有生成两个日志文件,一个是信息Info,还有一个是错误Error

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

  <log4net>

    <!--错误日志类-->
    <logger name="logerror">
      <!--日志类的名字-->
      <level value="ALL" />
      <!--定义记录的日志级别-->
      <appender-ref ref="ErrorAppender" />
      <!--记录到哪个介质中去-->
    </logger>
    <!--信息日志类-->
    <logger name="loginfo">
      <level value="ALL" />
      <appender-ref ref="InfoAppender" />
    </logger>

    <!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">

      <!--日志路径-->
      <param name= "File" value= "Logs\"/>
      <!--是否是向文件中追加日志-->
      <param name= "AppendToFile" value= "true"/>
      <!--log保留天数-->
      <param name= "MaxSizeRollBackups" value= "100"/>
      <!--当个日志文件的最大大小-->
      <param name="MaxFileSize" value="10240" />
      <!--日志文件名是否是固定不变的-->
      <param name= "StaticLogFileName" value= "false"/>
      <!--日志文件名格式为:2008-08-31.log-->
      <param name= "DatePattern" value= "yyyy-MM-dd-Error&quot;.htm&quot;"/>
      <!--文件创建的方式,这里是以Date方式创建-->
      <param name= "RollingStyle" value= "Date"/>
      <!--错误日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;内容:%n%m &lt;BR&gt;%n&lt;HR Size=1&gt;"  />/>
      </layout>
    </appender>

    <!--信息日志附加介质-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Logs\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxFileSize" value="10240" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="StaticLogFileName" value="false" />
      <!--\转义-->
      <param name="DatePattern" value="yyyy-MM-dd-In\fo&quot;.htm&quot;" />
      <param name="RollingStyle" value="Date" />
      <!--信息日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=green&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;内容:%n%m &lt;BR&gt;%n&lt;HR Size=1&gt;"  />
      </layout>
    </appender>

    <!-- 控制台前台显示日志 -->
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <mapping>
        <level value="ERROR" />
        <foreColor value="Red, HighIntensity" />
      </mapping>
      <mapping>
        <level value="Info" />
        <foreColor value="Green" />
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%n%date{HH:mm:ss,fff} [%-5level] %m" />
      </layout>

      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="Info" />
        <param name="LevelMax" value="Fatal" />
      </filter>
    </appender>

    <root>
      <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
      <level value="all" />
      <appender-ref ref="ColoredConsoleAppender"/>
      <!--<appender-ref ref="RollingLogFileAppender"/>-->
    </root>
  </log4net>
</configuration>

4.增加LogHelper操作类

    /// <summary>
    /// log4帮助类
    /// </summary>
    public class LogHelper
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");//这里的 loginfo 和 log4net.config 里的名字要一样
        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");//这里的 logerror 和 log4net.config 里的名字要一样

        public static void WriteLog(string info)
        {
            if (loginfo.IsInfoEnabled)
            {
                loginfo.Info(info);
            }
        }
        public static void WriteLog(string info, Exception ex)
        {
            if (logerror.IsErrorEnabled)
            {
                logerror.Error(info, ex);
            }
        }
    }

5.调用

a.CMD直接调用

LogHelper.WriteLog("增加日志");

b.MVC调用。需要在 Global.asax 的Application_Start 里面注册

  //log4Net 
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/Log4NetServe/log4Net.config")));//log4Net.config文件路径
            LogHelper.WriteLog("IIS开始启动");

猜你喜欢

转载自www.cnblogs.com/Alex-Mercer/p/12712460.html
今日推荐