美文网首页编程语言爱好者C#
log日志功能模块优化

log日志功能模块优化

作者: 张中华 | 来源:发表于2018-08-21 00:01 被阅读409次

    该模块原先是根据NLog提供的方法,对不同级别的log分别对应方法。如下:



    可是log级别那么多,如果一个一个写,岂不是要写很多方法,那么有没有一种动态识别的方式呢?上网查了一下,还真有:

    public static void WriteLog(string message, LogLevel logLevel)
            {
                if (string.IsNullOrEmpty(message))
                    return;
                var type = logger.GetType();
               type.InvokeMember(logLevel.ToString(), BindingFlags.Default | BindingFlags.InvokeMethod, null, logger, new object[] { message });  
            }
    
            public static void WriteLog(string message, Exception ex, LogLevel logLevel)
            {
                if (string.IsNullOrEmpty(message))
                    return;
                var type = logger.GetType();
                type.InvokeMember(logLevel.ToString(), BindingFlags.Default | BindingFlags.InvokeMethod, null, logger, new object[] { message,ex });
            }
    

    使用这两个方法,便可以动态的调用Nlog提供的方法啦。
    测试:
    暂且写一个简单的方法进行测试:



    调试,调用,查看:



    很明显此时会同时建立一个关于Info和debug的log日志信息。
    公众号.png

    相关文章

      网友评论

        本文标题:log日志功能模块优化

        本文链接:https://www.haomeiwen.com/subject/lpiriftx.html