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="" />
<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、提升地址

  老张得哲学

XiaoQi.Study 项目(三)的更多相关文章

  1. XiaoQi.Study项目(一)

    项目地址:https://github.com/xiaoqiyaozou1/XiaoQi.Study 感谢:“老张的哲学”.“晓晨”.“杨旭”等大佬的知识分享 一.项目创建 vs 2019 创建 as ...

  2. XiaoQi.Study项目(二)

    一.EF Core 使用的补充 1) 创建 接口 IEFCoreService 2)   实现 接口 EFCoreService 3) 在Startup.cs 中注册 ef 服务 并在控制器中注入使用 ...

  3. 在Tomcat下部属项目三种方式:

    在Tomcat下部属项目三种方式:       1直接复制:       2. 通过配置虚拟路径的方式    直接修改配置文件 写到tomcat/conf/server.xml     找到<H ...

  4. android 实践项目三

    android 实践项目三 本周我主要完成的任务是将代码进行整合,然后实现百度地图的定位与搜索功能.在这次实现的 图形界面如下: 在本周的工作中主要的实现出来定位与收索的功能,在地图中能实现了定位,显 ...

  5. crm 系统项目(三) 自动分页

    crm 系统项目(三) 自动分页 需求: 1. 做一个自动分页, 每15条数据1页 2. 让当前页数在中间显示 3. 上一页, 下一页 注意情况: 1.总页数 小于 规定显示的页数 2. 左右两边极值 ...

  6. Java实验项目三——职工类对象数组按照职工生日排序

    Program: 修改项目三(1)中的第3题,实现比较方法,将对象数组的数据按照生日的大小给职工排序. Description:令日期类MyDate和员工类Worker类实现接口Comparable, ...

  7. Weblogic部署项目三种方式

    在weblogic中部署项目通常有三种方式:第一,在控制台中安装部署:第二,将部署包放在domain域中autodeploy目录下部署:第三,使用域中配置文件config.xml 进行项目的部署. 控 ...

  8. tomcat deploy部署项目三种方法

    1.将应用文件夹或war文件直接copy到tomcat的webapps目录下,这样tomcat启动的时候会将webapps目录下的文件夹或war文件的内容当成应用部署.这种方式最简单且无须书写任何配置 ...

  9. docker部署项目 <三>

    使用docker运行一个控制台项目,新建一个控制台测试项目 一.安装mono,直接在网易镜像中心找下载路径 docker pull hub.c..com/library/mono:latest 二.安 ...

随机推荐

  1. 提升项目一:花卉管理系统(Servlet+JSP完成)

    这个是写的第一个项目:使用Servlet+JSP完成,加上对底层构架的理解,才可以对后面要接触使用的ssh框架的深刻理解 2017-02-11: 完成对进货业务的操作, 下一步完成对销货业务的操作

  2. 不疯“模”不成活,海尔阿里II代电视将极致进行到底

    我去过很多现场,经历过很多新品发布,各种概念,各种颠覆,有点见怪不怪.这次受邀海尔阿里II代电视发布会,本也是带着一颗平常心. 2点30分发布会准时开场,当 "智慧模块"在讲解员手 ...

  3. 如何手动添加jar包到本地maven仓库

    环境 win10    idea工具 1.确认已经安装好 mvn环境   MAVEN_HOME   D:\Tool\apache-maven-3.5.2 Path %MAVEN_HOME%\bin 2 ...

  4. js 实现排序算法 -- 选择排序(Selection Sort)

    原文: 十大经典排序算法(动图演示) 选择排序(Selection Sort) 选择排序(Selection-sort)是一种简单直观的排序算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存 ...

  5. js 网页运行原理

    当我们打开一个网页的时候,浏览器会首先创建一个窗口,这个窗口就是我所知道的window对象,也就是整个Javascript运行所依附的全局变量. 为了加载网页文档,当前窗口又需要创建一个Documen ...

  6. 【深圳·招聘】QQ音乐测试工程师-职位内推

    QQ音乐测试工程师 岗位职责 负责腾讯QQ音乐移动端/后台/web相关特性测试分析和执行,保障发布质量. 岗位要求 专业本科及以上学历,计算机/软件工程/信息管理/数学与应用数学/自动化/通信工程/电 ...

  7. Linux命令alias - 设置命令的别名

    用途说明设置命令的别名.在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名.虽然可以为命令建立“链接”解决长文件名的问题,但对于带命令行参数的命令,链接就无能为力了.而指定 ...

  8. 4 Values whose Sum is 0 (二分+排序)

    题目: The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, com ...

  9. Proto3:C++基本使用

    本教程提供protocol buffer在C++程序中的基础用法.通过创建一个简单的示例程序,向你展示如何: 在.proto中定义消息格式 使用protocol buffer编译器 使用C++ pro ...

  10. 使用Handler的步骤

    使用Handler的大致流程: 1.首先创建一个Handler对象,可以直接使用Handler无参构造函数创建Handler对象,也可以继承Hander类,重写HandleMessage方法来创建Ha ...