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);

  

原文地址:https://www.cnblogs.com/qidian10/p/2164081.html