因此,我在git repo中有一个项目,并且有2个分支:master和fix-master。我尚未在fix-master中更改与log4net关联的代码。但是每次启动master时,我都没有这个问题,如果我签出给fix-master,则在此行之后会出现此错误:
private static readonly ILog Log = LogManager.GetLogger(typeof(Program));
除了明显的候选对象(非法文件路径,权限错误)之外,问题甚至可能是互斥锁:
https://issues.apache.org/jira/browse/LOG4NET-506
在某些情况下,RollingFileAppender锁定日志文件夹
摘要:在某些配置情况下,滚动文件附加器可能在文件夹名称上发出互斥锁。如果尝试多个进程用不同的执行身份来做到这一点,只有一个人能够记录到其特定的日志文件。其他人将无法做它。
建议:
将此行添加到appSettings下的app.config / web.config中以启用内部调试:
<add key="log4net.Internal.Debug" value="true"/>
这将向系统控制台和]提供这样的输出>
[System.Diagnostics.Trace](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.trace?redirectedfrom=MSDN&view=netframework-4.8) log4net:ERROR Could not create Appender [RollingLogFileAppender] of type [log4net.Appender.RollingFileAppender]. Reported error follows. System.UnauthorizedAccessException: Access to path 'D__Logs_' denied. (Translated from french) à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) à System.Threading.Mutex.MutexTryCodeHelper.MutexTryCode(Object userData) à System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) à System.Threading.Mutex.CreateMutexWithGuaranteedCleanup(Boolean initiallyOwned, String name, Boolean& createdNew, SECURITY_ATTRIBUTES secAttrs) à System.Threading.Mutex..ctor(Boolean initiallyOwned, String name, Boolean& createdNew, MutexSecurity mutexSecurity) à System.Threading.Mutex..ctor(Boolean initiallyOwned, String name, Boolean& createdNew) à log4net.Appender.RollingFileAppender.ActivateOptions() à log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement) log4net:ERROR Appender named [RollingLogFileAppender] not found.
请尝试此操作,然后发回发现的内容!