zoukankan      html  css  js  c++  java
  • .net core 使用log4net日志组件

    一个web站点必须要记录日志,否则哪里出错了,完全是黑娃找黑妹,两眼一抹黑。

    最常用的就是log4net日志组件。我们可以通过扩展加入日志组件。

    第一步:在项目中NuGet log4net包,即 Install-Package log4net

    第二步:添加log4net.config配置文件到项目中;

    第三步:在项目中新建一个LogExtension类,代码如下所示:

    public static partial class LogExtension {
            //配置文件,我将之放在站点根目录的Config文件夹中
            private static string Log4netConfigureName => "Config/log4net.config";
    
            //日志仓储的名称
            private static string RepositoryName => "Log4NetLogRepository";
    
            //全局使用一个日志仓储。
            //注意:不允许定义多个同名的日志仓储。
            public static ILoggerRepository Repository => LogManager.CreateRepository(RepositoryName);
    
            static LogExtension() {
                //配置已经被实例化的日志仓储
                XmlConfigurator.Configure(Repository, new FileInfo(Log4netConfigureName));
            }
    
            /// <summary>
            /// 获取ILog实例
            /// </summary>
            /// <param name="type"></param>
            /// <returns></returns>
            public static ILog GetLog(this Type type) {
                if (type == null)
                    throw new ArgumentNullException();
                //只要有了日志仓库,就可以得到一个ILog的实例。因此,在这之前必须实例化一个日志仓储
                return LogManager.GetLogger(RepositoryName, type);
            }
    
            /// <summary>
            /// 获取ILog实例
            /// </summary>
            /// <typeparam name="TEntity"></typeparam>
            /// <param name="entity"></param>
            /// <returns></returns>
            public static ILog GetLog<TEntity>(this TEntity entity) where TEntity : class {
                //只要有了日志仓库,就可以得到一个ILog的实例。因此,在这之前必须实例化一个日志仓储
                return LogManager.GetLogger(RepositoryName, typeof(TEntity));
            }
        }

    第四步:使用方式见下图:

    是不是很方便?简直不要太方便了!

  • 相关阅读:
    java lambda表达式学习笔记
    一个奇妙的java坑:Long 类型的比较
    要不要冗余字段
    mysql找回密码
    mysql创建触发器
    【转】Java 8十个lambda表达式案例
    ThreadLocal类学习笔记
    mybatis generator使用总结
    【转】Java 项目UML反向工程转化工具
    PostMan做接口自动化测试
  • 原文地址:https://www.cnblogs.com/williamwsj/p/9648220.html
Copyright © 2011-2022 走看看