c# – 为什么log4net在配置之前创建一个空的日志文件?
发布时间:2020-12-15 22:12:41 所属栏目:百科 来源:网络整理
导读:由于某种原因,我的log4net在我的调试/发布文件夹中创建了一个空日志文件.示例文件名是“(null)20150409.txt”. 我不知道如何告诉它不要这样做.我正在以编程方式配置log4net,但是这个空文件是在实际运行配置例程之前创建的,可能是App.config文件本身的结果.
由于某种原因,我的log4net在我的调试/发布文件夹中创建了一个空日志文件.示例文件名是“(null)20150409.txt”.
我不知道如何告诉它不要这样做.我正在以编程方式配置log4net,但是这个空文件是在实际运行配置例程之前创建的,可能是App.config文件本身的结果. 这是App.config文件: <?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/> </configSections> <log4net> <root> <level value="ALL"/> <appender-ref ref="LogFileAppender"/> </root> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net"> <!--http://logging.apache.org/log4net/release/config-examples.html--> <!--http://logging.apache.org/log4net/release/faq.html--> <!--<param name="File" value="C:Imageslog-file.txt" />--> <file type="log4net.Util.PatternString" value="%property{LogFileName}"/> <staticLogFileName value="false"/> <param name="AppendToFile" value="true"/> <rollingStyle value="Date"/> <datePattern value="' 'yyyyMMdd'.txt'"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> </log4net> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> </startup> </configuration> 这是C#配置代码(看起来工作正常): log4net.GlobalContext.Properties["LogFileName"] = LogFileName; // Full path to log file log4net.Config.XmlConfigurator.Configure(); Log.Debug("CV3 Launched with log file located here: " + LogFileName); 如何在不影响正常工作的其余日志记录的情况下防止创建此空文件? 解决方法
我也有同样的问题.进行研究(
here,here和
here),错误是因为你已经调用了log4net.Config.XmlConfigurator.Configure();在设置log4net属性之前.
如果你像我一样,很可能你已经在AssemblyInfo.cs文件中再次配置了log4net.因为AssemblyInfo中的记录器将首先被加载,所以每次应用程序启动时它都会创建另一个(null)文件. 希望能帮助到你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |