Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这系列的教程讲的是Log4Net的应用.学习完这系列的教程,你可以实现如下图一样整洁.醒目的日志文件.教程中的每一篇文章都有可以运行的例子,并且教程里面的例子基本上都是典型的应用,你可以直接拿来用.我整理了一个Log4Net的配置文件Log4Net.config和一个日志帮助类LogHelper,你可…
Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这系列的教程讲的是Log4Net的应用.学习完这系列的教程,你可以实现如下图一样整洁.醒目的日志文件.教程中的每一篇文章都有可以运行的例子,并且教程里面的例子基本上都是典型的应用,你可以直接拿来用.我整理了一个Log4Net的配置文件Log4Net.config和一个日志帮助类LogHelper,你可…
在博客园看到一篇关于Log4Net使用教程,比较详细,感谢这位热心的博主 博客园地址:http://www.cnblogs.com/kissazi2/archive/2013/10/29/3393595.html…
在C#代码中应用Log4Net系列教程(附源代码)   Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这系列的教程讲的是Log4Net的应用.学习完这系列的教程,你可以实现如下图一样整洁.醒目的日志文件.教程中的每一篇文章都有可以运行的例子,并且教程里面的例子基本上都是典型的应用,你可以直接拿来用.我整理了一个Log4Net的配置文件Log4Ne…
不管用什么框架,学什么东西,最初的想法还不是尽快地用上这个框架,所以我们在这个章节还是不打算介绍具体配置节的应用,而是直接给出一个经典的使用样例,让你尽快上手.即使你对Log4Net的配置不熟悉也完全没有关系. (下面的文章假定你已经看过了第一篇,当然在有的操作中,我还是会简单地重复第一篇,以便加深你的记忆) 先说说这篇教程的思路,我们打算使用Log4Net,首先必须先引入Log4Net的库:然后我们要对Log4Net进行一些配置:最后,我们会在代码里面使用它. 1.引入Log4Net.dll组…
不管用什么框架,学什么东西,最初的想法还不是尽快地用上这个框架,所以我们在这个章节还是不打算介绍具体配置节的应用,而是直接给出一个经典的使用样例,让你尽快上手.即使你对Log4Net的配置不熟悉也完全没有关系. (下面的文章假定你已经看过了第一篇,当然在有的操作中,我还是会简单地重复第一篇,以便加深你的记忆) 先说说这篇教程的思路,我们打算使用Log4Net,首先必须先引入Log4Net的库:然后我们要对Log4Net进行一些配置:最后,我们会在代码里面使用它. 1.引入Log4Net.dll组…
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger name="logerror"> <level value="ALL" /> <appender-ref ref="ErrorAppender" /> </logger> <!-- 信息日志类 -->…
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger name="logerror"> <level value="ALL" /> <appender-ref ref="ErrorAppender" /> </logger> <!-- 信息日志类 -->…
前面的几篇文章已经比较完整地解释了怎么使用Log4Net,但是我们可能需要将Log4Net的日志类封装在自己的类库中,以便C/S或B/S程序进行调用.下面的示例程序简单地分为两层,一个是应用程序层WebApplication_testLog4Net,另一个就是公用类库Common. 1.首先,我们还是在类库中先添加Log4net的引用 2.直接在类库Common中的AssemblyInfo.cs中添加Log4Net的配置文件地址. 3.log4net.config还是放在应用程序那层(如左图),…
自己最近在思考一个问题,如何让自己的代码质量逐渐提高,于是想到整理这个系列,通过阅读别人的代码,从别人的代码中学习,来逐渐提高自己的代码质量.本篇是这个系列的第一篇,我也不知道自己会写多少篇,但是希望自己能坚持下去. 第一个自己学习的源码是:https://github.com/LyricTian/gin-admin 自己整理的代码地址:https://github.com/peanut-pg/gin_admin 这篇文章整理的时候只是为了跑起来整体的代码,对作者的代码进行精简. 这篇博客主要是…
这篇博客还是整理从https://github.com/LyricTian/gin-admin 这个项目中学习的golang相关知识 作者在项目中使用了https://github.com/google/wire 做依赖注入,这个库我之前没有使用过,看了作者代码中的使用,至少刚开始是看着优点懵,不知道是做什么,所以这篇博客主要就是整理这个包的使用 依赖注入是什么? 如果你搜索依赖注入,百度百科里可能先看到的是控制反转,下面是百度百科的解释 控制反转(Inversion of Control,缩写…
这篇博客还是整理从https://github.com/LyricTian/gin-admin 这个项目中学习的golang相关知识. 作者在项目中使用了 github.com/casbin/casbin 进行权限控制的,这个库自己之前也没有用过,正好可以通过这个项目学习一下使用. 当然这篇博客并不会对casbin的使用做非常详细的说明,感兴趣的可以去官网看具体的使用文档. 关于casbin 常见访问控制模型 ABAC: 基于属性的访问控制. DAC: 自主访问控制模型(DAC,Discreti…
首先让我们先把Log4Net跑起来,示例代码在文章最后面可以下载 1.先把Log4Net引入到工程中,为了演示方便,我们先建立一个winform程序.在程序的根目录下面,建立一个Libs文件夹,以便存放Log4Net的DLL文件. 2.进行一些简单的配置,先不讲配置文件的作用,大家照我写的输入.下面代码库的内容是在App.config文件中输入的,如果大家没有App.config文件,可以通过在解决方案中,添加新建项→应用程序配置文件,进行添加. <?xml version="1.0&qu…
毕竟人不是神,谁写的程序都会有bug,有了bug不可怕,可怕的是出错了,你却不知道错误在哪里.所以我们需要将应用程序中抛出的所有异常都记录起来,不然出了错,找问题就能要了你的命.下面我们主要讨论的是如何捕捉全局的异常.基本上在winform或web中捕获全局异常的思路都是一样的,在全局的应用程序对象中添加异常捕获的代码,并写入日志文件中. 一.在Winform程序中捕获全局异常 在winfrom中我们需要了解Application对象中的两个事件 ①Application.ThreadExcep…
来源:http://blog.csdn.net/yishuaijun/article/details/21345893 本来想一篇一篇复制的.但是考虑到别人已经做过了,就没有必要了吧,就给大家一个目录吧 前言:WPF之What&Why WPF之XMAL----XMAL概览 WPF之从0开始学习XMAL WPF学习---系统的学习XAML语法 WPF学习之X名称空间详解 WPF学习之控件与布局 WPF之Binding深入探讨 WPF学习之深入浅出话属性 WPF之深入浅出话事件 WPF学习之深入浅出…
写在前面: 匹配器(Matchers)是Jest中非常重要的一个概念,它可以提供很多种方式来让你去验证你所测试的返回值,本文重点介绍几种常用的Matcher,其他的可以通过官网api文档查看. 常用的匹配方式: 第一种:相等匹配,这是我们最常用的匹配规则 test('two plus two is four', () => { expect(2 + 2).toBe(4); }); 在这段代码中 expact(2 + 2) 将返回我们期望的结果,通常情况下我们只需要调用expect就可以,括号中的…
为什么使用log4net 有些日志语句只是在开发中用于调试的,不应该在Release版本中输出,log4net通过配置文件可以为Debug和Release不同的模式设置不同的输出级别来控制,而且如果已经发布了,在Release下遇到一些问题,想要查看某些本来在Debug模式下才会输出的日志,可以修改配置文件就会即时生效了(重启程序不是必要的) 代码中使用log4net 先了解log4net定义的日志级别,从上到下,级别由高到低,在配置文件中将可以控制输出级别,低于该级别的日志不会输出.canno…
简介: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题. 经验表明,日志记录往往是软件开发周期中的重要组成部分.它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug:一旦在程序中加入了Log 输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预.另外,日志信息可以输出到不同的地方(控制台,文件等)以备以后研究之用. L…
园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4net 二.独立配置文件中配置log4net 三.代码中xml配置log4net 四.完整代码配置log4net 五.新增数据库字段 下面先一点一点来学习如果进行配置 1.下载,2.数据库脚本,请参考log4net保存到数据库系列一:WebConfig中配置log4net 3.配置文件 #region…
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们的程序更好的工作. 假设你已经跟上了我们的进度. 我们来为我们的文章明细新增一个评论框:当我们在明细中点击评论的时候,在我们的明细页面显示评论,这里,我们就可以完全把明细页面看成一个独立的路由,可以建立自己的子路由页面,做一些评论,分享等操作. 那,首先在data目录下建立我们的评论实体Commen…
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇文章开始引入第三方的css库materializecss,引入方法直接在index.html中普通引用就可以了 众所周知,Angular出现的目的就是解决web编程的一些限制,让我们编写的网页能像App一样运作,我们现在称之为单页面应用(SPA),单页面应用程序有诸多好处,譬如页面响应快,良好的前后…
最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tutorial-building-asp-net-web-api-restful-service/.于是打算跟着学一下,把学习过程以及自己的理解记录在博客园的同时也分享给大家. 每一篇结束后我都会把代码共享 由于我也是刚开始入门技术能力有限,有问题大家一起讨论下吧 系列导航 一.使用Entity Fram…
在本文中,我们将一起查看TodoController 类代码. [Route] 属性定义了Controller的URL 模板: [Route("api/[controller]")] 所有符合该模板类型的HTTP 请求都会被路由到该controller.在本例中, 路由的命名规范为对应Controller 的前缀,对于TodoController 类,路由模板为 “api/todo”. HTTP 方法 [HttpGet].[HttpPost]和[HttpDelete] 属性定义为 co…
ASP.NET 5.0 的主要目标之一是统一MVC 和 Web API 框架应用. 接下来几篇文章中您会了解以下内容: ASP.NET MVC 6 中创建简单的web API. 如何从空的项目模板中启动,及添加控件到应用中. 如何配置 ASP.NET 5.0 管道. 在 IIS 外对立部署应用. 本文的目的是从空的项目开始,逐步讲解如何创建应用.当然,您也可以从“Starter Web” 模板开始,它默认包含了MVC 6.权限.记录等其他模块,同时也内置了有效的控制器和视图在其中. 创建空的 A…
向视图中添加服务 现在,ASP.NET MVC 6 支持注入类到视图中,和VC类不同的是,对类是公开的.非嵌套或非抽象并没有限制.在这个例子中,我们创建了一个简单的类,用于统计代办事件.已完成事件和平均优先级的服务. 1. 添加命名为Services 的文件夹,在该文件夹下添加名称为 StatisticsService.cs 的类: StatisticsService 类代码设计如下: using System.Linq; using System.Threading.Tasks; using…
写在前面: 在JavaScript代码中,异步运行是很常见的.当你有异步运行的代码时,Jest需要知道它测试的代码何时完成,然后才能继续进行另一个测试.Jest提供了几种方法来处理这个问题. 测试异步代码的三种实现方式: 方法一:回调函数 这是非常常见的通用处理方式,比如你有一个fetchData(callback)的function用来获取数据,并且在获取完成的时候调用callback 函数,你想测试返回的数据是“peanut butter” ,默认情况下当fetchData执行完成的时候Je…
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453131687 以下的方法不会返回QuerySets,但是作用非常强大,尤其是粗体显示的方法,需要背下来. 方法名 解释 get() 获取单个对象 create() 创建对象,无需save() get_or_create() 查询对象,如果没有找到就新建对象 update_or_create() 更新…
本节课讲解webpack4打包单页应用过程中的代码分割和代码懒加载.不同于多页面应用的提取公共代码,单页面的代码分割和懒加载不是通过webpack配置来实现的,而是通过webpack的写法和内置函数实现的. 目前webpack针对此项功能提供 2 种函数: import(): 引入并且自动执行相关 js 代码 require.ensure(): 引入但需要手动执行相关 js 代码 本文将会进行逐一讲解. >>> 本节课源码 >>> 所有课程源码 1. 准备工作 此次代码…
这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPlugin插件.在使用和配置上,更加方便和清晰. >>> 本节课源码 >>> 所有课程源码 1. 准备工作 按照惯例,我们在src/文件夹下创建pageA.js和pageB.js分别作为两个入口文件.同时,这两个入口文件同时引用subPageA.js和subPageB.js,…
园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4net 二.独立配置文件中配置log4net 三.代码中xml配置log4net 四.完整代码配置log4net 五.新增数据库字段 下面先一点一点来学习如果进行配置 1.下载,2.数据库脚本,请参考log4net保存到数据库系列一:WebConfig中配置log4net 3.配置文件 log4net.…