返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

WebApi日志打印实现代码

时间:2016-10-16 21:14来源:知行网www.zhixing123.cn 编辑:麦田守望者

在软件开发和使用过程中,程序的运行和异常日志对于判断程序运行状态,及时获取异常信息非常重要。常规打印日志的方法是在所有需要的地方都加入日志代码,本文通过MVC WebApi扩展接口实现统一的日志打印功能。

首先对log4net进行初步封装,提供打印普通日志和异常的功能。
    public class LogScope : IDisposable
    {
        public readonly string LOGGER_NAME = "Scope";
 
        private string scopeName = string.Empty;
        private Guid scopeID = Guid.NewGuid();
        public LogScope(string scopeName, params object[] datas)
        {
            ILog logger = LogManager.GetLogger(LOGGER_NAME);
            logger.Info(string.Format("Enter {0} - {1}. params: ", scopeName, scopeID.ToString()) + string.Join(" ", datas));
            this.scopeName = scopeName;
        }
        public void Dispose()
        {
            ILog logger = LogManager.GetLogger(LOGGER_NAME);
            logger.Info(string.Format("Exit {0} - {1}.", this.scopeName, this.scopeID.ToString()));
        }
 
        public static void LogInfo(string format, params object[] param)
        {
            LogManager.GetLogger("Common").InfoFormat(format, param);
        }
 
        public static ILog Logger
        {
            get
            {
                return LogManager.GetLogger("Common");
            }
        }
        public static void LogException(string message, Exception ex)
        {
            LogManager.GetLogger("Exception").Error(message, ex);
        }
    }
在之前的项目中,我们打印日志是在进入函数和返回函数结果的时候通过IDisposable接口使用using方法打印方法名称和参数。

这种方法可以非常容易的控制打印日志的数量和需要打印的参数。但是当方法很多时,工作量比较大。

    在.Net 的MVC WebApi中提供了扩展接口可以拿到调用时http请求的各种信息,因此我们可以统一在这里打印所有的输入、异常日志。
    MVC和WebApi是使用两套独立的路由和解析,获取http信息需要扩展的接口也不一样。

1、MVC,访问请求到来后会先进入OnActionExecuting,这里打印函数请求的输入。请求返回后会调用OnActionExecuted,从方法中可以拿到方法运行的异常信息。

2、WebApi,访问请求到来后会先进入OnActionExecuting,这里打印函数请求的输入。请求返回后会调用OnActionExecuted,从方法中可以拿到方法运行的异常信息。

将两个方法加入全局过滤器


运行代码可以正常打印日志:

顶一下
(1)
100%
踩一下
(0)
0%
标签(Tag):WebApi日志打印
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片