logging-log4net-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominik Psenner (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4NET-506) RollingFileAppender locking log folder in some cases
Date Wed, 16 Mar 2016 20:15:33 GMT

    [ https://issues.apache.org/jira/browse/LOG4NET-506?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15198070#comment-15198070
] 

Dominik Psenner commented on LOG4NET-506:
-----------------------------------------

Of course, this issue must be resolved in such a way that it does not introduce new issues
and it should not under the precondition that all possibly offending characters that a date
pattern could contain are properly escaped. In the example yyyy.MM.dd'-App1.log' the single
quotes (') would have to be removed or replaced by a safe character.

> 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)

Mime
View raw message