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