log4net类库配置、WebService配置

一、类库配置

结构如下图

1、LogUtility类

public class LogUtility
    {
        private static readonly log4net.ILog log = log4net.LogManager.GetLogger(
               System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        public static void WriteInfo(string strInfo)
        {
            log.Info(strInfo);
        }
        public static void WriteDebugInfo(string strInfo)
        {
            log.Debug(strInfo);
        }
        public static void WriteDebugError(string desc,Exception ex)
        {
            log.Error(desc,ex);
        }
    }

2、Web端调用:上面的类库DLL引用过来、log4net引用另外要配置Global.asax和Log4Net.config

Global配置

 protected void Application_Start(object sender, EventArgs e)
        {
            FileInfo file = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "Log4Net.config");
            log4net.Config.XmlConfigurator.Configure(file);
        }

Log4Net.config配置

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
    <!--日志文件路径,按文件大小方式输出时在这里指定文件名,并且前面的日志按天在文件名后自动添加当天日期形成文件-->
    <param name="File" value="Logs\"/>
    <!--是否追加到文件-->
    <param name="AppendToFile" value="true"/>
    <!--记录日志写入文件时,不锁定文本文件-->
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <!--Unicode编码-->
    <Encoding value="UTF-8"/>
    <!--最多产生的日志文件数,value="-1"为不限文件数-->
    <param name="MaxSizeRollBackups" value="10"/>
    <!--是否只写到一个文件中-->
    <param name="StaticLogFileName" value="false"/>
    <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
    <param name="RollingStyle" value="Date"/>
    <!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]-->
    <param name="DatePattern" value="yyyy-MM-dd/yyyyMMdd&quot;.log&quot;"/>
    <!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名-->
    <param name="maximumFileSize" value="5000KB" />
    <!--记录的格式。-->
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt;%n - %m%n"/>
    </layout>
  </appender>

  <appender name="ExceptionFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
    <!--日志文件路径,按文件大小方式输出时在这里指定文件名,并且前面的日志按天在文件名后自动添加当天日期形成文件-->
    <param name="File" value="Logs\"/>
    <!--是否追加到文件-->
    <param name="AppendToFile" value="true"/>
    <!--记录日志写入文件时,不锁定文本文件-->
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <!--Unicode编码-->
    <Encoding value="UTF-8"/>
    <!--最多产生的日志文件数,value="-1"为不限文件数-->
    <param name="MaxSizeRollBackups" value="10"/>
    <!--是否只写到一个文件中-->
    <param name="StaticLogFileName" value="false"/>
    <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
    <param name="RollingStyle" value="Date"/>
    <!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]-->
    <param name="DatePattern" value="yyyy-MM-dd/yyyyMMdd&quot;-Exception.log&quot;"/>
    <!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名-->
    <param name="maximumFileSize" value="5000KB" />
    <!--记录的格式。-->
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt;%n - %m%n"/>
    </layout>
  </appender>

  <logger name="Exception">
    <level value="ALL"/>
    <appender-ref ref="ExceptionFileAppender"/>
  </logger>

  <root>
    <!--根据日志的级别,来决定需要记录的日志,日志的级别主要有以下几类:ALL,DEBUG,INFO,WARN,RROR,FATAL,OFF-->
    <level value="ALL" />
    <!--
      <level value="WARN" />
      -->
    <appender-ref ref="LogFileAppender" />
  </root>
</log4net>

Ok 大功告成

 

二、Web端配置log4net;和类库配置一样就少一个引用类库的DLL另外Web端无需LogUtility类直接调用log4net 写日志即可

结构图如下

Global.asax和Log4Net配置同方法一

调用方法

ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

 /// <summary>
        /// 根据二维码编号获取公证书
        /// </summary>
        /// <param name="qrCode">二维码编号</param>
        /// <returns>json</returns>
        [WebMethod]
        public string QueryEvidence(string qrCode)
        {
            try
            {
                log.Info("方法QueryEvidence开始\r\n二维码:" + qrCode); 
                 …………………………
       } }

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。