log4net:错误无法创建附加程序[RollingLogFileAppender]

问题描述 投票:0回答:1

因此,我在git repo中有一个项目,并且有2个分支:master和fix-master。我尚未在fix-master中更改与log4net关联的代码。但是每次启动master时,我都没有这个问题,如果我签出给fix-master,则在此行之后会出现此错误:

private static readonly ILog Log = LogManager.GetLogger(typeof(Program));
c# git log4net appender
1个回答
0
投票

除了明显的候选对象(非法文件路径,权限错误)之外,问题甚至可能是互斥锁:

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.

请尝试此操作,然后发回发现的内容!

© www.soinside.com 2019 - 2024. All rights reserved.