zoukankan      html  css  js  c++  java
  • 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开始
    二维码:" + qrCode); 
                     …………………………
           } }


    作者:PEPE
    出处:http://pepe.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    [LeetCode] Diagonal Traverse 对角线遍历
    [LeetCode] Find Bottom Left Tree Value 寻找最左下树结点的值
    [LeetCode] Next Greater Element I 下一个较大的元素之一
    [LeetCode] Teemo Attacking 提莫攻击
    [LeetCode] 494. Target Sum 目标和
    记一次Android studio升级之后的坑
    Flutter:Slivers大家族,让滑动视图的组合变得很简单!
    flutter控件之ListView滚动布局
    flutter 生命周期
    Flutter 案例学习之:GridView
  • 原文地址:https://www.cnblogs.com/PEPE/p/3512714.html
Copyright © 2011-2022 走看看