zoukankan      html  css  js  c++  java
  • .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-Info&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开始启动");
    
  • 相关阅读:
    Git安装(操作篇)
    Git安装
    ES6基础练习
    SVN的安装与搭建及使用
    解决SVN文件不显示绿色小钩图标问题
    混入(mixin)
    ref属性与props配置项
    docker-compose部署 Mysql 8.0 主从模式基于GTID
    项目统一处理
    Docker Compose实战
  • 原文地址:https://www.cnblogs.com/Alex-Mercer/p/12712460.html
Copyright © 2011-2022 走看看