log4net类库配置、WebService配置

一、类库配置

结构如下图

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

log4net类库配置、WebService配置

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 写日志即可

结构图如下

log4net类库配置、WebService配置

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); 

                 …………………………
       } }

 

 

 

 

 

 

 

你可能感兴趣的:(webservice)