log4net的简单使用

2021-02-01 04:17

阅读:412

标签:格式   login   exce   media   api   复制   指定   exec   保存   

1、安装log4net插件
  在nuget包管理器查找log4net并安装,安装最新版本就行,如果不行,自行百度吧。在需要使用log4net的项目中引用它
2、创建log4net.config
  在和web.config同一文件路径下创建log4net.config文件,随便创建一个文件,重命名即可。创建完成之后,设置其属性:复制到输出目录。并在其中加入以下设置

  上述配置中有对应的注释,可以根据个人需要更改。这里我们需要多说一嘴log4net的日志等级,从低至高分别是ALL、DEBUG、INFO、WARN、ERROR、FATAL、None。我们的配置中就配置了info(一般日志信息,可记录具体操作)和error(错误日志信息,可记录异常信息)。
3、记录程序集信息
  找出项目AssemblyInfo.cs文件,在文件的末尾加上

// 指定log4net 的配置文件
[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4net.config", Watch = true)]

4、建立log4net帮助类

/// 
/// 日志帮助类
/// 
public class LogHelper
{
    public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
    public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");

    /// 
    /// 普通的文件记录日志
    /// 
    /// 
    public static void WriteLog(string info)
    {
        if (loginfo.IsInfoEnabled)
        {
            loginfo.Info(info);
        }
    }
    /// 
    /// 错误日志
    /// 
    /// 
    /// 
    public static void WriteLog(string info, Exception se)
    {
        if (logerror.IsErrorEnabled)
        {
            logerror.Error(info, se);
        }
    }
}

5、全局拦截异常信息并写进错误日志
  找到项目的WebApiConfig.cs文件,添加ExceptionFilterAttribute过滤器截取全局异常

namespace SnailFis
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务

            //跨域配置
            config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

            // Web API 路由
            config.MapHttpAttributeRoutes();

            //设置webapi路由规则
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "snailFis_api/{controller}/{action}"
            );

            config.Filters.Add(new ApiExceptionResultAttribute());//添加过滤器
            //移除xml返回格式数据
            GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
        }

        /// 
        /// API异常返回
        /// 
        public class ApiExceptionResultAttribute : ExceptionFilterAttribute
        {
            public override void OnException(HttpActionExecutedContext actionExecutedContext)
            {
                base.OnException(actionExecutedContext);//获取返回的http信息
                LogHelper.WriteLog("WebApiConfig", actionExecutedContext.Exception);
            }
        }
    }
}

  这时我们可以故意在代码中抛出一个异常,看看能不能截取到并写入进错误日志了。另外info日志,就需要根据个人需求添加了,这里就不再赘述了。

log4net的简单使用

标签:格式   login   exce   media   api   复制   指定   exec   保存   

原文地址:https://www.cnblogs.com/liangshibo/p/13185420.html


评论


亲,登录后才可以留言!