log4Net不能成功生成日志問題(關於配置錯誤)
調試發現問題原因在於 Log4Net IsInfoEnabled 一直為 false,返回的對象中所有 IsXXX 一直為false,這個問題的原因在於配置文件讀取失敗。
配置方式有兩種:
1、直接在web.config 中配置,可如下
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!-- 設置日志記錄方式 -->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender, log4net">
<param name="File" value="D:\\Senderlog.txt" />
<param name="AppendToFile" value="false" />
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
</layout>
</appender>
<!--<appender name="Console" type="log4net.Appender.ConsoleAppender, log4net">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
</layout>
</appender>-->
<!-- 設置日志記錄級別 -->
<root>
<priority value="INFO" />
<appender-ref ref="LogFileAppender" />
</root>
<!-- Specify the level for some specific namespaces -->
<!-- Level can be : ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
<logger name="Sender" additivity="true">
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>
2、直接新建如log4net.config 的配置文件,如下
<log4net>
<!-- 設置日志記錄方式 -->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender, log4net">
<param name="File" value="D:\\Senderlog.txt" />
<param name="AppendToFile" value="false" />
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
</layout>
</appender>
<!--<appender name="Console" type="log4net.Appender.ConsoleAppender, log4net">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
</layout>
</appender>-->
<!-- 設置日志記錄級別 -->
<root>
<priority value="INFO" />
<appender-ref ref="LogFileAppender" />
</root>
<!-- Specify the level for some specific namespaces -->
<!-- Level can be : ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
<logger name="Sender" additivity="true">
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>
這兩種配置方法的區別在與讀取配置文件
方法1中讀取方式是這樣的:
log4net.Config.XmlConfigurator.Configure(); //這個地方是注冊log4net 配置
或在AssemblyInfo.cs文件中添加
[assembly: log4net.Config .XmlConfigurator()]
方法2中則需要指定配置文件
log4net.Config.XmlConfigurator.Configure("文件信息"); //這個地方是注冊log4net 配置,感興趣的朋友可以根據下圖進行相關配置,總之這個地方的效果和其它方法是一樣的,目的都是為了加載log4net 中的相關配置信息。

或在AssemblyInfo.cs文件中添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
這句的意思是 找到名稱為 log4net.config 的配置文件,不一定是web.config
轉載於:https://www.cnblogs.com/bindot/p/log4net.html
