笔试考试系统--项目搭建及用Log4Net记录日志
2021-01-20 18:13
标签:博文 version etc 执行 如何 对象 lazy filters int 项目架构搭建 效果如下: 搭建完成后一定不要忘了各个项目之间的引用 UI层也要安装EF 层之间添加引用: ExamOnLine.Iservice层添加:对DTO层的引用、 ExamOnLine.Service层添加:对ExamOnLine.Iservice、ExamOnLine.ZSZ.DTO的引用 ExamOnLine.ExamOnLine.AdminWeb层添加:ExamOnLine.Iservice、ExamOnLine.Service、ExamOnLine.Common、ExamOnLine..DTO引用 ExamOnLine.Front.Web与ExamOnLine..Admin.Web一样 添加引用步骤如下: 二、配置Log4Net;(前后台都配置) 搭建ExceptionFilter 打印到Log4Net未处理异常;把EF的日志通过Debug方式打印到Log4Net;具开发EF实体部分:然后编写单元测试,确保运行没问题;后面用的时候都下Database .Setlnitializer (一)先给大家介绍下Log4Net简介: 1:什么是日志,为什么需要记录日志? 2:Log4NET 是一个从 Java 版的 Log4J 移植过来的日志框架,可以简化日志的记录; 3、 Log4NET 的概念: a) 级别:trace、debug、info、warn、error、fatal。常用 debug(调试信息,程序员临 时跟踪执行,在正式运行的项目中应该不显示);warn(警告);error(错误)。 b) 特殊的级别:all(全部显示);off(全部不显示); c) appender:可以把日志输出到控制台、文件、数据库、ftp 服务器,甚至可以把日 志输出到邮件、短信等。不同的输出场景就是不同的 appender,可以添加多个 appender,可以设定不同的级别级别使用不同的 appender (二)Log4Net使用步骤: 1:添加Install-Package Log4NET 2:如果 NuGet 没有给自动配置 App.config,那么就要在 3:在webConfig里面添加子节点(在configuration下添加),具体代码如下: 4:在程序启动的时候:log4net.Config.XmlConfigurator.Configure();。容易忘,如果发现日志文件一直没有,先想是不是忘了写这句话。 5:记 录 信 息 : ILog logger = LogManager.GetLogger(typeof(WebForm1)); logger.Debug("aaaaaaaaaaaaaa"); 6:性能优化: logger.DebugFormat(“hello {0} {}”,"hello")等。 用{n}占位符,而不是字符串拼接,这样如果配置中不输出这个级别的时候,就不会进行字符串拼接,提升性能。 (三)搭建 ExceptionFilter 打印到 Log4Net 记录Action未处理的异常;把 EF 的日志通过Debug 方式打印到 Log4Net,原理如下: 具体配置步骤: 1:新建一个类,在App_Start里面 2:在global里面添加 GlobalFilters.Filters.Add(new ZSZExceptionFilter()); //增加自定义异常处理器 这样就可以了 今天的博文就到这里,明天给大家分享如何配置EF,配置EF;编写实体公共父类 笔试考试系统--项目搭建及用Log4Net记录日志 标签:博文 version etc 执行 如何 对象 lazy filters int 原文地址:https://www.cnblogs.com/JuneDream/p/13307194.html
一、项目整体采用分层结构,不搞传统的三层架构,直接用Ul+Service (只是根据项目的不同的变体而已,思想上没什么不-样),建ExamOnLine.Common、ExamOnLine.IService、ExamOnLine. Service、ExamOnLine.DTO、 ExamOnLine.Front.Web、ExamOnLine.Admin.Web、 ExamOnLine.UnitTest(单元测试可以后期再搭)using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace ExamOnLine.Admin.Web.App_Start
{
public class ExamOnLineExceptionFilter : IExceptionFilter
{
private static ILog log = LogManager.GetLogger(typeof(ExamOnLineExceptionFilter));//声明Log4NET对象,建议一个类就声明一个ILog对象
public void OnException(ExceptionContext filterContext)
{
//只要action出现未处理的异常,这个方法里面都可以捕获到
log.ErrorFormat("出现未处理的异常{0}", filterContext.Exception);
}
}
}
using ExamOnLine.Admin.Web.App_Start;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace ExamOnLine.Admin.Web
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//如果发现日志文件一直没有,先想是不是忘了写这句话。
log4net.Config.XmlConfigurator.Configure();
GlobalFilters.Filters.Add(new ExamOnLineExceptionFilter()); //增加自定义异常处理器
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
}
文章标题:笔试考试系统--项目搭建及用Log4Net记录日志
文章链接:http://soscw.com/index.php/essay/44648.html