[
https://issues.apache.org/jira/browse/LOG4NET-506?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dominik Psenner updated LOG4NET-506:
------------------------------------
Labels: triaged (was: )
> RollingFileAppender locking log folder in some cases
> ----------------------------------------------------
>
> Key: LOG4NET-506
> URL: https://issues.apache.org/jira/browse/LOG4NET-506
> Project: Log4net
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 1.2.15
> Environment: Windows Server 2008 R2, Windows Server 2012 R2
> Reporter: Frédéric Delaporte
> Assignee: Dominik Psenner
> Priority: Minor
> Labels: triaged
> Attachments: AppAlone_log4net.txt, AppConcurrently_log4net.txt
>
>
> *Abstract:*
> In some configuration cases, the rolling file appender may issue a mutex lock
> on the folder name. If more than one processes try to do that with different
> executing identity, only one will be able to log to its specific logs file.
> The others will no more be able to do it.
> *Repro:*
> Many applications run on the same server.
> All run under different windows identity.
> All do log through {{RollingFileAppender}} to D:\Logs\ (value of {{file}}
> configuration node) to their own file log (filename specific to each
> application through {{datePattern}} configuration node, like
> {{yyyy.MM.dd'-App1.log'}}, {{yyyy.MM.dd'-App2.log'}}, ...).
> They log through {{AdoNetAppender}} too.
> Since having upgraded Log4Net from 1.2.13 to 1.2.15 on some applications,
> they cease being able to all log to D:\Logs\. Only one of them still do log,
> depending on which have started first. SQL logs still work. Non upgraded
> applications are still able to log to D:\Logs\, whatever their start order
> have been.
> *Diagnosis info:*
> Activating log4net debug trace on an application, and comparing failure cases
> to working cases, yields following diff:
> {code:title=failing case debug trace}
> 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.
> {code}
> {code:title=working case corresponding trace}
> log4net: Searched for existing files in [D:\Logs]
> log4net: curSizeRollBackups starts at [0]
> log4net: Opening file for writing [D:\Logs\2016.02.26-App1.log] append [True]
> log4net: Created Appender [RollingLogFileAppender]
> log4net: Adding appender named [RollingLogFileAppender] to logger [root].
> {code}
> (All other trace lines are identical)
> {code:xml|title=Application appender configuration}
> <appender name="RollingLogFileAppender"
> type="log4net.Appender.RollingFileAppender">
> <file value="D:\Logs\" />
> <datePattern value="yyyy.MM.dd'-App1.log'" />
> <staticLogFileName value="false" />
> <appendToFile value="true" />
> <rollingStyle value="Composite" />
> <maxSizeRollBackups value="10" />
> <maximumFileSize value="5MB" />
> <layout type="log4net.Layout.PatternLayout">
> <conversionPattern value="%date [%thread] %-5level %logger - %message -
> %property%newline%exception" />
> </layout>
> </appender>
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)