ASP.NET Boilerplate Castle容器无缝添加日志功能
2016-03-23 13:35
639 查看
以添加log4net日志框架为例进行讲解
1.通常log4net的配置参数放在单独的配置文件中,但也可以写在web.config中,这里在我们的web项目中添加log4net.config应用配置文件
2.在程序启动的时候将LoggingFacility添加到容器中
4.Logger是以属性的方式注入的,当需要使用Logger时,通常的用法是
5.注意事项
a) 这些代码依赖的dll有
Castle.Facilities.Logging.dll
Castle.Core.dll
log4net.dll
b) NullLogger.Instance返回一个ILogger实例,Debug、Info等方法内没有代码,什么都没做,详看Castle.Core.Logging源码:
1.通常log4net的配置参数放在单独的配置文件中,但也可以写在web.config中,这里在我们的web项目中添加log4net.config应用配置文件
<?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" > <file value="Logs/Logs.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10000KB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" /> </layout> </appender> <root> <appender-ref ref="RollingFileAppender" /> <level value="DEBUG" /> </root> <logger name="NHibernate"> <level value="WARN" /> </logger> </log4net>
2.在程序启动的时候将LoggingFacility添加到容器中
protected override void Application_Start(object sender, EventArgs e) { IocManager.Instance.IocContainer.AddFacility<LoggingFacility>(f => f.UseLog4Net().WithConfig("log4net.config")); base.Application_Start(sender, e); }
4.Logger是以属性的方式注入的,当需要使用Logger时,通常的用法是
//1.声明一个Logger属性 public ILogger Logger { protected get; set; } //2.在构造函数中给他赋值NullLogger,保证容器在没有解析到Logger时不会报异常 Logger=NullLogger.Instance;
5.注意事项
a) 这些代码依赖的dll有
Castle.Facilities.Logging.dll
Castle.Core.dll
log4net.dll
b) NullLogger.Instance返回一个ILogger实例,Debug、Info等方法内没有代码,什么都没做,详看Castle.Core.Logging源码:
public class NullLogger : IExtendedLogger, ILogger { ...... public static readonly NullLogger Instance = new NullLogger(); public void Debug(string message, Exception exception) { } public void DebugFormat(string format, params object[] args) { } ...... }
相关文章推荐
- ASP.NET MVC系列:添加模型
- asp.net如何定时执行任务
- 问题解决---未能将网站配置为使用ASP.NET4.0
- ASP.NET 使用Session,避免用户F5刷新时重复提交(转)
- Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器
- Java 8: 从永久代(PermGen)到元空间(Metaspace)
- 禁用树莓派Raspberry Pi休眠 ,更换树莓派软件源, 如何更换树莓派软件源
- ASP.NET-Request对象
- ASP.NET-ActionResutlt
- ASP.NET-MVC中Entity和Model之间的关系
- ASP.NET-viewBag Viewdata Tempdata
- ASP.NET-使用json
- ASP.NET-属性与过滤器
- Spring的AOP自动代理(含AspectJ的AOP开发)
- 无法激活服务,因为它不支持 ASP.NET 兼容性
- 无法激活服务,因为它不支持 ASP.NET 兼容性
- 无法激活服务,因为它不支持 ASP.NET 兼容性
- 无法激活服务,因为它不支持 ASP.NET 兼容性
- 2016-AspNet-MVC教学-4-动态表格页面的基本测试-1
- ASP