zoukankan      html  css  js  c++  java
  • XiaoQi.Study 之 .net core webapi (三)

    1、配置跨域

      1)、首先注册跨域要求 ,(可访问的IP、端口)

              //注册跨域
                services.AddCors(options =>
                {
                    options.AddPolicy("XiaoQiAllowOrigins",
                    builder =>
                    {
                        builder.WithOrigins("http://localhost:8080")
                                .AllowAnyHeader()
                                .AllowAnyMethod();
                    });
                });

      2)、启用注册好的跨域

    app.UseCors("MyAllowOrigins");

    2、控制器全局异常过滤

      1)、在Filter 文件夹下 创建GlobalExceptionFilter.cs。该类必须继承“IExceptionFilter”

    public class GlobalExceptionFilter : IExceptionFilter
        {
            private readonly IWebHostEnvironment _env;
            private readonly ILogger<GlobalExceptionFilter> _logger;
    
            public GlobalExceptionFilter(IWebHostEnvironment env, ILogger<GlobalExceptionFilter> logger)
            {
                _env = env;
                _logger = logger;
            }
            public void OnException(ExceptionContext context)
            {
                string msg = string.Empty;
                if (_env.IsDevelopment())
                {
                    msg = context.Exception.StackTrace;
                    LogHelper.Error(msg);
                }
                else
                {
                    msg = context.Exception.Message;//错误信息
      
              LogHelper.Error(msg);
                }
                throw new NotImplementedException();
            }
        }

      2)、在注册控制器的地方,为控制器添加全局过滤

         //注册Controller
                services.AddControllers(o=> {
                    o.Filters.Add(typeof(GlobalExceptionFilter));//控制器异常监控
                })

    3、log4.net 简单使用

      1)、安装log4.net 包

      2)、在common 文件下创建LogHelper

       public class LogHelper
        {
            private static ILoggerRepository repository { get; set; }
            private static ILog _log;
            private static ILog log
            {
                get
                {
                    if (_log == null)
                    {
                        Configure();
                    }
                    return _log;
                }
            }
    
            public static void Configure(string repositoryName = "NETCoreRepository", string configFile = "log4net.config")
            {
                repository = LogManager.CreateRepository(repositoryName);
                XmlConfigurator.Configure(repository, new FileInfo(configFile));
                _log = LogManager.GetLogger(repositoryName, "");
            }
    
            public static void Info(string msg)
            {
                log.Info(msg);
            }
    
            public static void Warn(string msg)
            {
                log.Warn(msg);
            }
    
            public static void Error(string msg)
            {
                log.Error(msg);
            }
        }

      3)、添加log4net.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <!-- This section contains the log4net configuration settings -->
      <log4net>
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
          <file value="LogFile/" />
          <appendToFile value="true" />
          
          <rollingStyle value="Date" />
          
          <staticLogFileName value="false" />
          
          <datePattern value="yyyyMMdd'.log'" />
          <maxSizeRollBackups value="10" />
          <maximumFileSize value="1MB" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
          </layout>
        </appender>
    
        <!-- Setup the root category, add the appenders and set the default level -->
        <root>
          <level value="ALL" />
          <appender-ref ref="RollingLogFileAppender" />
        </root>
    
      </log4net>
    </configuration>

      4)、在startup文件中启用LogHelper的配置方法,为其读取配置

          public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
    
                LogHelper.Configure(); //使用前先配置
            }

      5)、在需要的地方使用,如控制器全局异常过滤中的使用

      

    4、提升地址

      老张得哲学

  • 相关阅读:
    Flex皮肤制作流程
    AIR app自动更新的实现方式
    Adobe AIR迷你教程 使用自定义窗口以及对窗口的移动,缩放,关闭操作
    AIR数据处理的方法
    Flex中的注释方法
    Flex皮肤设计简单实例教程
    八个常用的AS3开源类库
    as3 如何判断同时按下两个键
    struts2中动态方法调用
    Struts2.3笔记
  • 原文地址:https://www.cnblogs.com/xiaoqiyaozou/p/12527861.html
Copyright © 2011-2022 走看看