gpt4 book ai didi

c# - 为什么 log4net 在配置之前创建一个空日志文件?

转载 作者:行者123 更新时间:2023-11-30 12:26:17 25 4
gpt4 key购买 nike

出于某种原因,我的 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:\Images\log-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);

如何在不影响正常工作的其余日志记录的情况下防止创建此空文件?

最佳答案

我也遇到了同样的问题。围绕( hereherehere )进行研究,错误是因为您调用了 log4net.Config.XmlConfigurator.Configure(); before设置 log4net 属性。

如果您像我一样,很可能您在 AssemblyInfo.cs 文件中另一次配置了 log4net。因为 AssemblyInfo 中的记录器会首先加载,所以每次您的应用程序启动时它都会创建另一个(空)文件。

希望对您有所帮助。

关于c# - 为什么 log4net 在配置之前创建一个空日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29552261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com