XiaoQi.Study 项目(三)
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 项目(三)的更多相关文章
- XiaoQi.Study项目(一)
项目地址:https://github.com/xiaoqiyaozou1/XiaoQi.Study 感谢:“老张的哲学”.“晓晨”.“杨旭”等大佬的知识分享 一.项目创建 vs 2019 创建 as ...
- XiaoQi.Study项目(二)
一.EF Core 使用的补充 1) 创建 接口 IEFCoreService 2) 实现 接口 EFCoreService 3) 在Startup.cs 中注册 ef 服务 并在控制器中注入使用 ...
- 在Tomcat下部属项目三种方式:
在Tomcat下部属项目三种方式: 1直接复制: 2. 通过配置虚拟路径的方式 直接修改配置文件 写到tomcat/conf/server.xml 找到<H ...
- android 实践项目三
android 实践项目三 本周我主要完成的任务是将代码进行整合,然后实现百度地图的定位与搜索功能.在这次实现的 图形界面如下: 在本周的工作中主要的实现出来定位与收索的功能,在地图中能实现了定位,显 ...
- crm 系统项目(三) 自动分页
crm 系统项目(三) 自动分页 需求: 1. 做一个自动分页, 每15条数据1页 2. 让当前页数在中间显示 3. 上一页, 下一页 注意情况: 1.总页数 小于 规定显示的页数 2. 左右两边极值 ...
- Java实验项目三——职工类对象数组按照职工生日排序
Program: 修改项目三(1)中的第3题,实现比较方法,将对象数组的数据按照生日的大小给职工排序. Description:令日期类MyDate和员工类Worker类实现接口Comparable, ...
- Weblogic部署项目三种方式
在weblogic中部署项目通常有三种方式:第一,在控制台中安装部署:第二,将部署包放在domain域中autodeploy目录下部署:第三,使用域中配置文件config.xml 进行项目的部署. 控 ...
- tomcat deploy部署项目三种方法
1.将应用文件夹或war文件直接copy到tomcat的webapps目录下,这样tomcat启动的时候会将webapps目录下的文件夹或war文件的内容当成应用部署.这种方式最简单且无须书写任何配置 ...
- docker部署项目 <三>
使用docker运行一个控制台项目,新建一个控制台测试项目 一.安装mono,直接在网易镜像中心找下载路径 docker pull hub.c..com/library/mono:latest 二.安 ...
随机推荐
- webStrom 运行React-Native项目
1.点击“Edit Configurations...” 2.点击“+”选择“npm” 3.“Name”随便输入一个名称,“Command”改为“help”,然后在点击“+”号. 4.选择“Run E ...
- Java反射的实例
JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法; 这种动态获取的信息以及动态调用对象的方法的功能称为ja ...
- java实现树的一般操作
https://www.cnblogs.com/dawnyxl/p/9047437.html 树是数据结构中最基本的结构,今天的博客更新一下树的基本操作: 树的节点结构: package tree; ...
- 使用Commons Logging
Commons Logging 和Java标准库提供的日志不同,Commons Logging是一个第三方日志库,它是由Apache创建的日志模块,需要导入commons-logging-1.2.ja ...
- 斐波那契数列的第N项
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1242 题目: 斐波那契数列的定义如下: F(0) = 0 ...
- Jackie's blog
介绍使用winmm.h进行音频流的获取 首先需要包含以下引用对象 #include <Windows.h>#include "mmsystem.h"#pragma ...
- 深度学习论文笔记:Fast R-CNN
知识点 mAP:detection quality. Abstract 本文提出一种基于快速区域的卷积网络方法(快速R-CNN)用于对象检测. 快速R-CNN采用多项创新技术来提高训练和测试速度,同时 ...
- MySQL show命令的用法
show tables或show tables from database_name; // 显示当前数据库中所有表的名称 show databases; // 显示mysql中所有数据库的名称 sh ...
- 苹果为何要一定要去印度生产iPhone
现在,关于苹果手机有几种流行的猜想和期待,今年恰逢iPhone问世十周年,新产品估计会有颠覆性创新,消费者正望穿秋水,翘首企盼,但只需待到金秋便可知晓,何况iPhone8或许也就是一小撮发烧友的选 ...
- USB小白学习之路(7) FPGA Communication with PC by CY7C68013,TD_init()解析
注:这个TD_Init()只对EP6进行了配置,将其配置成为Bluk_In端口,而没有对EP2进行配置.这篇文章直接把寄存器的图片贴上来了,看起来比较杂.感兴趣的可以看下一篇文章,是转自CSDN,对E ...