zoukankan      html  css  js  c++  java
  • JWT+Log4net配置与使用

    Log4net的优点

           log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。程序运行过程中就能生成并输出日志信息而无需人工干预,可供开发人员尽快找到应用程序中的Bug。另外,日志信息可以输出到不同的地方。

    Log4net的结构

         log4net 有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及Layout(布局)

    重点---网上教程项目中添加log4日志流程如下

    1.项目中都会有一个工具类库,然后添加对log4net.dll的引用,再该类库下封装一个Log4Help.cs帮助类

    2.在MVC,API项目中再次添加对log4net.dll的引用,在根目录的Global.asax.cs中的Application_Start方法中添加:

    log4net.Config.XmlConfigurator.Configure();

    3.添加Log4Net.config配置文件

    讲解错误请多理解:

    第二部操作是可以忽略掉的,项目一直都是提倡封装解耦,既然已经将log4封装到帮助类库中,是为了其它BLL层和DAL层能够使用,但是MVC和API层又再一次重复引用log4类库,作用也只是为了读取配置Log4Net.config配置文件,那么完全可以把配置文件读取写入到第一步中

    [assembly: XmlConfigurator(ConfigFile = "Config/Log4Net.config", Watch = true)] //重点是这句话,读取MVC或者APILog4Net.config配置文件
    namespace JWT.Common
    {
        public class Log4Help
        {
            private static readonly ILog loginfo = LogManager.GetLogger("loginfo");
    
            private static readonly ILog logerror = LogManager.GetLogger("logerror");
    
            /// <summary>
            /// 打印日志信息
            /// </summary>
            /// <param name="info"></param>
            public static void Info(string info)
            {
                loginfo.Info(info);
            }
    
            /// <summary>
            /// 错误日志信息
            /// </summary>
            /// <param name="info"></param>
            /// <param name="ex"></param>
            public static void Error(string info, Exception ex)
            {
                logerror.Error(info, ex);
            }
        }
    }

    Log4Net.config配置文件,我是放在MVC这个文件目录下

    如果去掉Config文件夹目录,直接将Log4Net.config放在项目根目录,读取路径配置如下

    [assembly: XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

    个人都是将数据库链接字符串database.config和在线配置appSettings单独用两个文件拆分维护,全放在web.config,参数配置和链接字符串太多,容易眼花也不太好找

     

    Log4net配置

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
      </configSections>
      <log4net>
    //logerror这个名字是在帮助类中使用的 <logger name="logerror"> <level value="ALL" /> <appender-ref ref="ErrorAppender" /> //ErrorAppender如下1.1 </logger> <logger name="loginfo"> <level value="ALL" /> <appender-ref ref="InfoAppender" /> </logger>
    //对应1.1名字必须一样 <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    //File用于保存路径 <param name="File" value="Log\LogError\" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="10240" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd'.txt'" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] [%-5level] : %message %newline" /> </layout> </appender>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="Log\LogInfo\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd'.txt'" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] [%-5level] : %message %newline" /> </layout> </appender> </log4net> </configuration>
     public class HomeController : Controller
        {
            public ActionResult Index()
            {
                Log4Help.Info("1111");
                Log4Help.Error("12345",null);
                return View();
            }
    
        }

    至此,所有准备工作以及配置工作全部完成,运行应用程序,然后打开项目资源管理文件,就能看见log文件夹

    源码下载

  • 相关阅读:
    Android开发如何定制framework层服务
    Intellij IDEA通过SVN导入基于Springboot的maven项目以及对已有项目做更新
    intelliJ IDEA 怎么添加本地的idea web项目
    Android热修复之AndFix使用教程
    iOS友盟分享的使用总结
    iOS 传感器集锦
    IOS CALayer的属性和使用
    Swift使用Alamofire实现网络请求
    Android踩坑随笔Fragment中onActivityResult方法不被调用
    上周热点回顾(4.30-5.6)团队
  • 原文地址:https://www.cnblogs.com/xiaobai123/p/9257278.html
Copyright © 2011-2022 走看看