(译)Windsor入门教程---第五部分 添加日志功能

介绍


现在我们已经有了基础的框架了,是时候添加内容了,那么我们首先应该考虑的就是在应用程序中添加日志功能。我们会使用Windsor来配置,在这一部分,你将学习Windsor之外的其他功能。

Logging Facility

在上一部分说过,Windsor有很多自带的可选的功能组件,他们扩展了Windsor的即用性。在这一部分,我们将在程序中添加日志功能。

Logging
Facility提供了一些常用的日志框架比如Log4net、Nlog,以及mvc内置的日志框架Trace。Logging
Facility将提供一个抽象类,这样当你的程序切换其他日志框架的时候不会很麻烦。更重要的是,Facility根据需要提供Ilogger实例,不需要任何静态依赖。

我们需要添加必须的包,启动Nuget‘s Package Manager Console并键入:

Install-Package Castle.Windsor-log4net

这将会把依赖想都添加到程序中:

Installer

接下来添加程序集的引用,创建一个Installer来添加日志功能到程序中:

注意API的调用模式,泛型参数指定我们想要添加的类型,然后用lambda表达式制定类型为log4net.

我们没有指定log4net的配置文件,默认的配置是在log4net.Config文件,这是log4net配置的核心文件。我们在程序中添加一个配置文件,包含标准的log4net配置信息:

然后修改Installer类:

What we just did?

你可能会问:这怎么使用?你要做的就是调用Castle.Core.Logging.Ilogger命名空间下的Ilogger接口(常用的做法是使用属性,而不是构造函数)。容器将提供配置并且准备使用Ilogger实例。为了说明我们在AccountController中添加了一个警告日志,当用户登录密码错误时记录日志:

如果log4net的配置是正确的,那么现在登录错误的日志将被记录。

(译)Windsor入门教程---第五部分 添加日志功能,布布扣,bubuko.com

时间: 2024-12-10 05:18:40

(译)Windsor入门教程---第五部分 添加日志功能的相关文章

(译)Windsor入门教程---第三部分 编写第一个Installer

简介 在第二部分我们创建了控制器工厂.现在我们要把我们的控制器交给Windsor来管理. Installer Windsor有一个专门的类installer.cs,用来向容器注册组件.在你的应用程序中至少会有几个这样的installer类,所以要保持他们的代码整洁以及可见性.接下来在我们的应用程序中新建一个专门的文件夹"Installer"来存放这些类.我们首先要注册到容器中的就是控制器,所以我们先来新建一个ControllersInstaller.cs类. Controller in

WCF入门教程(五)配置文件

WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方式来架设服务. 当然配置文件的方式还是很灵活,应用广泛. 通过此文章具体介绍WCF如果通过配置文件的方式进行配置. 一.配置文件功能 需要配置服务的EndPoint,设置相关绑定协议以及服务协定,并且还可以限定其具体的行为等. 二.配置文件结构 主要配置内容包括service节点.binding和b

Windsor入门教程---第一部分 获取Windsor

介绍 从开发环境的角度看,Windsor只是一个类库.不需要安装,也不需要额外的工具,你直需要获取Windsor的类库到你的电脑上就可以了. 获取 有几个方法可以获取到Windsor,可以使用包管理工具OpenWrap,也可以使用微软的NuGet,或者也可以手动下载Windsor.最简单的方法就是使用Nuget,我们接下来就是使用NoGet. 新建解方案 启动Visual Studio 新建项目---ASP.NET MVC 3 Web Application 选择Internet 和 Razor

RabbitMQ入门教程(十五):普通集群和镜像集群

原文:RabbitMQ入门教程(十五):普通集群和镜像集群 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/78740346 分享一个朋友的人工智能教程(请以"右键"->"在新标签页中打开连接"的方式访问).比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 普通集群 推荐一篇优秀的文章: RabbitM

Photoshop入门教程(五):滤镜

学习心得:滤镜通常用于摄影行业,是安装在相机镜头前用于过滤自然光的附加镜头,从而获得一些特殊的效果.同理,Photoshop的滤镜也是为了产生特殊的效果.Photoshop滤镜分为两类:一种是内部滤镜,即安装Photoshop时自带的滤镜:另外一种是外挂滤镜,需要我们进行安装后才能使用.随着Photoshop版本的更新,滤镜的种类也随之增加,变得非常丰富,通过各种滤镜的组合,产生出无穷无尽的效果.加上强大的外挂滤镜,更能高效快速的处理图像. 在CS6版本中,"风格化""素描&

Docker入门教程(五)Docker安全

Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通过阅读本文快速了解. 我们必须高度重视开源软件的安全问题,当开发者在使用Docker时,从本地构建应用程序到生产环境部署是没有任何差异的(译者注:作者的言外之意是更应该重视Docker的安全问题).当Docker被越来越多的平台使用的时候,我们需要严格保证Docker作为一个项目或者平台的安全性.

无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一定要用到非常熟练才可以,今天我们会通过一个员工信息表实例,再把这些组件串一下. (1)TextField  (2)Botton  (3)NumberField (4)Hidden (5)DataFiedl (6)RadioGroup (7)CheckBoxGroup (8)Combobox (9)F

【知识整理】这可能是最好的RxJava 2.x 入门教程(五)

这可能是最好的RxJava 2.x入门教程系列专栏 文章链接: 这可能是最好的RxJava 2.x 入门教程(一) 这可能是最好的RxJava 2.x 入门教程(二) 这可能是最好的RxJava 2.x 入门教程(三) 这可能是最好的RxJava 2.x 入门教程(四) 这可能是最好的RxJava 2.x 入门教程(五) GitHub 代码同步更新:https://github.com/nanchen2251/RxJava2Examples 为了满足大家的饥渴难耐,GitHub将同步更新代码,主

WebSocket入门教程(五)-- WebSocket实例:简单多人聊天室

from:https://blog.csdn.net/u010136741/article/details/51612594 [总目录] WebSocket入门教程--大纲 [实例简介] 本文,我们通过nodejs和javascript实现一个网页聊天室的demo.主要包括,聊天,改用户名,查看其他用户在线状态的功能.大致流程为,用户访问网页,即进入聊天状态,成为新游客,通过底部的输入框,可以输入自己想说的话,点击发布,信息呈现给所有在聊天的人的页面.用户可以实时修改自己的昵称,用户离线上线都会