① MVC如何使用Log4Net进行错误日志记录
在Web应用运行过程中,我们难免会遇到程序运行异常,这个时候我们就应该将异常信息记录下来,以便开发人员和维护人员对异常原因进行还原,对异常原因进行修复。在ASP.NET平台中进行日志记录的组件也有很多,如Log4Net、CommonLogging等,我们这里选用Log4Net进行异常日志的记录。
1. 捕获异常
在ASP.NET MVC中提供了一个全局的异常处理过滤器:HandleErrorAttribute,可以通过该过滤器捕获异常信息。
我们在Models文件夹下新建类型Log4ExceptionAttribute,继承HandleErrorAttribute类,同时重写OnException方法来捕获异常数据:
using System.Web.Mvc;namespace PMS.WebApp.Models{ public class Log4ExceptionAttribute:HandleErrorAttribute { ///
/// 重写OnException方法来捕获异常数据 ///
///public override void OnException(ExceptionContext filterContext) { base.OnException(filterContext); //捕获当前异常数据 var ex = filterContext.Exception; } }}
新建过滤器后我们还需要在Global文件中调用的RegisterGlobalFilters方法中完成自己定义异常处理过滤的注册。
using System.Web.Mvc;using PMS.WebApp.Models;namespace PMS.WebApp{ public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { //filters.Add(new HandleErrorAttribute()); filters.Add(new Log4ExceptionAttribute()); } }}
2. 考虑到多用户并发操作时可能产生的问题,我们需要新建一个队列来进行异常信息的暂存,同时开辟一个线程专门对队列中的异常信息进行处理。
在Log4ExceptionAttribute类中新建一个静态的`异常类型的队列,在发生异常后,程序自动触发OnException方法,方法中将当前的异常信息入队后,跳转到错误页面。
using System;using System.Collections.Generic;using System.Web.Mvc;namespace PMS.WebApp.Models{ public class Log4ExceptionAttribute:HandleErrorAttribute { public static QueueExceptions=new Queue(); ///
/// 重写OnException方法来捕获异常数据 ///
///public override void OnException(ExceptionContext filterContext) { base.OnException(filterContext); //捕获当前异常数据 var ex = filterContext.Exception; //将异常数据入队 Exceptions.Enqueue(ex); //跳转到错误页面 filterContext.HttpContext.Response.Redirect("/Error.html"); } }}
Log4Net的配置是在应用程序配置文件中进行的,我们先在配置文件中进行Log4Net的配置。Log4Net需要配置的节点位置和SpringNet完全相同,首先需要在configSessions中新增子节点,然后在configuration节点中增加log4net节点完成具体配置。
...
在配置文件中可以对日志记录的信息、格式、文件名等作出具体的配置,下面是配置信息的详解
<"1.0"?>
在Global文件中的Application_Start方法中开启一个线程,用于将队列中的错误信息写入日志文件。
using System.Linq;using System.Threading;using System.Web.Http;using System.Web.Mvc;using System.Web.Optimization;using System.Web.Routing;using log4net;using PMS.WebApp.Models;using Spring.Web.Mvc;namespace PMS.WebApp{ // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明, // 请访问 http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : SpringMvcApplication//HttpApplication { protected void Application_Start() { log4net.Config.XmlConfigurator.Configure();//读取Log4Net配置信息 AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //开启一个线程,扫描异常信息队列. var filePath = Server.MapPath("/Log/"); ThreadPool.QueueUserWorkItem((a) => { while (true) { //判断队列中是否有数据 if (Log4ExceptionAttribute.Exceptions.Any()) { //出队一条异常信息 var ex = Log4ExceptionAttribute.Exceptions.Dequeue(); //若异常信息不为空 if (ex == null) continue; //将异常信息写入到日志文件中 var logger = LogManager.GetLogger("errorMsg"); logger.Error(ex.ToString()); } else { //若异常信息队列为空,则线程休息三秒 Thread.Sleep(3000); } } }, filePath); } }}
成功完成错误日志的配置。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
② webapi GET接口出现List参数,ajax怎么传值
return success后 应该在ajax中跳转页面 function editRole(id){ var obj = new Object(); obj.id = id; $.ajax( { type : 'POST', url : getRootPath() + "/user/checkUsedRole", data : $.toJSON(obj), dataType : 'json', contentType : 'app...
③ 自营性电商项目④
本次需要执行的SQL语句大致是:
关于字段列表,应该包括:
在 csmall-pojo 的根包下的 vo 包下创建 CategoryDetailsVO 类,封装以上设计的字段对应的属性:
在 CategoryMapper 接口中添加:
在 CategoryMapper.xml 中添加配置:
在 ICategoryService 中添加:
在 CategoryServiceImpl 中执行查询并返回。
在 CategoryController 中添加:
在 CategoryControllerTests 中测试:
管理员及权限的管理,涉及的数据表有:
当某个管理员尝试登录时,必须实现”根据用户名查询此管理员的信息,至少包括id、密码、权限“,需要执行的SQL语句大致是:
接下来,在根项目中创建 csmall-admin 模块(与 csmall-proct 类似),并在其下创建 csmall-admin-service 和 csmall-admin-webapi 这2个子模块(与 csmall-proct 的2个子模块类似),然后,尽量在 csmall-admin-webapi 中实现以上查询功能:
最后,关于Key的使用,通常建议使用冒号区分多层次,类似URL的设计方式,例如:
Spring Security 是用于 解决认证与授权的框架 。
在根项目下创建新的`csmall-passport`子模块,最基础的依赖项包括`spring-boot-starter-web`与`spring-boot-starter-security`(为避免默认存在的测试类出错,应该保留测试的依赖项`spring-boot-starter-test`),完整的`csmall-passwort`的`pom.xml`为:
调整完成后,即可启动项目,在启动的日志中,可以看到类似以下内容:
Spring Security有默认登录的账号和密码( 以上提示的值),密码是随机的,每次启动项目都会不同。
Spring Security默认要求所有的请求都是必须先登录才允许的访问,可以使用默认的用户名`user`和自动生成的随机密码来登录。在测试登录时,在浏览器访问当前主机的任意网址都可以(包括不存在的资源),会自动跳转到登录页(是由Spring Security提供的,默认的URL是:http://localhost:8080/login),当登录成功后,会自动跳转到此前访问的URL(跳转登录页之前的URL),另外,还可以通过 http://localhost:8080/logout 退出登录。
Spring Security的依赖项中包括了 Bcrypt算法 的工具类,Bcrypt是一款非常优秀的密码加密工具,适用于对需要存储下来的密码进行加密处理。
如果要使得Spring Security能使用数据库中的信息(数据库中的用户名与密码)来验证用户身份(认证),首先,必须实现“根据用户名查询此用户的登录信息(应该包括权限信息)”的查询功能,要实现此查询,需要执行的SQL语句大致是:
要在当前模块(`csmall-passport`)中实现此查询功能,需要:
- [`csmall-passport`] 在`pom.xml`中添加对`csmall-pojo`的依赖
- [`csmall-passport`] 在`src/main/java`下的`cn.celinf.csmall.passport`包下创建`mapper.AdminMapper.java`接口
- [`csmall-passport`] 在接口中添加抽象方法:
- 在`src/main/resources`下创建`mapper`文件夹,并在此文件夹下粘贴得到`AdminMapper.xml`
- 在`AdminMapper.xml`中配置以上抽象方法映射的SQL查询:
- 完成后,还应该编写并执行测试
根据有效的用户名查询出的结果例如:
④ One or more validation errors occurred是什么错!
错在没有允许站点通过验证,重新添加以后能解决该问题。步骤如下:
1、直接在电脑浏览器那里打开设置菜单,选择图示项跳转。
⑤ h5跳转到移动端地图网页打开地图app
腾讯地图: https://lbs.qq.com/webApi/uriV1/uriGuide/uriWebMarker
高德地图: https://developer.amap.com/api/uri-api/guide/mobile-web/point
网络地图: http://lbsyun..com/index.php?title=uri/api/web
⑥ h5就是页面吗,还是微信小程序
h5就是html5的简称,现在h5还有一个含义,因为很多人不懂h5是什么东西,但是都知道哪些炫酷的邀请函,节日卡等等是用h5技术做出来的,然后很多人就认为这样的页面就叫做h5。
其实h5就是html5, 它是html的升级,它配合css3+javascript可以写出各种各样的炫酷页面。
它是可以基于微信平台的(可以是小程序的形式,可以是公众号的推文等等),也可以基于任何的其他平台,也可以是个人服务器等等。当然现在用得比较多的场景还是基于微信平台的。
而HR问你的会不会H5,一般指的是你会不会写单页面(即用html5+css3+javascript技术开发的页面(主要是 canvas 的熟练使用))
其实H5在我们开发眼里是一种技术,在其他使用者眼里是一种页面