MVC3.0+Framework4.0中使用Log4net注意事项

log4net.dll是日志记录插件,官方最新版本是1.2.10,支持的是Framework2.0,运用到.net4.0上是没有任何作用的,需要修改下源代码,才能起作用。

 

首先到log4net官网下载源码http://logging.apache.org/log4net/download.html

下载后,用vs打开src里面的源码,将log4net类库的目标框架选择为4.0,在生成选项卡里将条件编译符号改成:NET;NET_2_0;NET_4_0

生成路径修改成..\build\bin\net\4.0\debug\


再打开log4net类库的AssemblyInfo.cs文件,找到:[assembly: System.Security.AllowPartiallyTrustedCallers]

注释掉,或者修改为:[assembly:SecurityRules(SecurityRuleSet.Level1)]


下一步,打开log4net类库的Config\XMLConfigurator.cs文件,修改settings.ProhibitDtd = false; 为settings.DtdProcessing = DtdProcessing.Parse;



OK编译,成功,拷贝log4net到我们的mvc3.0 razor项目中,加入引用。
 

在MVC3.0最外面的Web.config中加入如下配置:(在根节点configuration里面加入如下代码)

复制代码
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/>
</sectionGroup>
</configSections>
<log4net debug="true">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="Logs\log.txt"/>
<param name="datePattern" value="MM-dd HH:mm"/>
<param name="AppendToFile" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs/Log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="5000K"/>
<param name="RollingStyle" value="Size"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>

</log4net>
复制代码

  

以上代码是log日志的配置,可以自己进一步修改


最后,我们在Global里面加入log4net.Config.XmlConfigurator.Configure();即可完成:

protectedvoid Application_Start()
{
log4net.Config.XmlConfigurator.Configure();
//这句代码
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}

  

好了,这样整个log4net就可以安安稳稳的运行在MVC3.0+Framework4里面了。

在需要的地方加入使用(就跟2.0一样了):

 

publicstaticreadonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

  

posted @   jackchain  阅读(4020)  评论(12编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示