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

ASF GitHub Bot commented on LOG4NET-552:
----------------------------------------

Github user dpsenner commented on a diff in the pull request:

    https://github.com/apache/logging-log4net/pull/15#discussion_r133924926
  
    --- Diff: src/Appender/FileAppender.cs ---
    @@ -620,22 +620,23 @@ public class MinimalLock : LockingModelBase
                        private string m_filename;
                        private bool m_append;
                        private Stream m_stream = null;
    -
    -                   /// <summary>
    -                   /// Prepares to open the file when the first message is 
logged.
    -                   /// </summary>
    -                   /// <param name="filename">The filename to use</param>
    -                   /// <param name="append">Whether to append to the file, 
or overwrite</param>
    -                   /// <param name="encoding">The encoding to use</param>
    -                   /// <remarks>
    -                   /// <para>
    -                   /// Open the file specified and prepare for logging.
    -                   /// No writes will be made until <see 
cref="AcquireLock"/> is called.
    -                   /// Must be called before any calls to <see 
cref="AcquireLock"/>,
    -                   /// <see cref="ReleaseLock"/> and <see 
cref="CloseFile"/>.
    -                   /// </para>
    -                   /// </remarks>
    -                   public override void OpenFile(string filename, bool 
append, Encoding encoding)
    +            private Mutex m_appendMutex = null;
    +            private string m_appendMutexFriendlyName = 
"MUTEX_INTERPROCESS_COMMUNICATION_ACROSS_PROCESSES";
    +            /// <summary>
    +            /// Prepares to open the file when the first message is logged.
    +            /// </summary>
    +            /// <param name="filename">The filename to use</param>
    +            /// <param name="append">Whether to append to the file, or 
overwrite</param>
    +            /// <param name="encoding">The encoding to use</param>
    +            /// <remarks>
    +            /// <para>
    +            /// Open the file specified and prepare for logging.
    +            /// No writes will be made until <see cref="AcquireLock"/> is 
called.
    +            /// Must be called before any calls to <see 
cref="AcquireLock"/>,
    +            /// <see cref="ReleaseLock"/> and <see cref="CloseFile"/>.
    +            /// </para>
    --- End diff --
    
    Update the docstring to document the new behavior.


> Incorrect behavior of RollingFileAppender while rolling files, if multiple 
> processes appending into same file
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: LOG4NET-552
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-552
>             Project: Log4net
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 1.2.15
>         Environment: Windows Server 2008 R2 Enterprise
>            Reporter: Sachin Abaso Patil
>            Priority: Blocker
>         Attachments: Modification in AdjustFileBeforeAppend.png
>
>
> Hi Team,
> This issue has become blocker for us, as on our production environment, 
> multiple processes are appending log into single log file which has no issue, 
> but while rolling it overwrites files and thus missing log entries.
> Based on link below, it looks like log file rolling mechanism of log4net is 
> not process safe even after using FileAppender.InterProcessLock. 
> Link: https://issues.apache.org/jira/browse/LOG4NET-485
> Also, in FAQ (https://logging.apache.org/log4net/release/faq.html) under 
> section “How do I get multiple process to log to the same file?”, it has been 
> clearly mentioned that, rolling files is simply not compatible with multiple 
> process scenario.
> My questions,
> 1.    We are using version “1.2.15”. Are you planning to fix above mentioned 
> rolling issue in upcoming release? If yes then please provide tentative 
> release date.
> 2.    We had incorporated log4net in our project in year 2009, had FAQ 
> mentioned this limitation (rolling file not compatible with multi process) in 
> year 2009? Because we while studying log4net during year 2009 we do not 
> remember seeing this note in FAQ?
> Requesting you to please respond as soon as possible with your comments.
> Below is how we have configured appender for all processes,
>     <appender name="RollingFileAppender" 
> type="log4net.Appender.RollingFileAppender">
>     <threshold value ="ERROR"/>
>     <file value="${SystemDrive}\LogFiles\Example.log" />
>     <param name="LockingModel" 
> type="log4net.Appender.FileAppender+MinimalLock" />
>     <appendToFile value="true" />
>     <maximumFileSize value="100MB" />
>     <staticLogFileName value="true"/>
>     <maxSizeRollBackups value="-1" />
>     <countDirection value="1" />
>     <datePattern value=".yyyyMMddHH'.log'"/>
>     <rollingStyle value="Composite" />
>     <ignoreExceptionItemAgeLimit value="false" />
>     <exceptionItemAgeLimit value="00:00:59" />
>     <layout type="log4net.Layout.PatternLayout">
>       <param name="conversionPattern" value ="%utcdate{yyyy-MM-dd 
> HH:mm:ss.fff}|%-5level|%property{EventID}|%property{log4net:HostName}|%appdomain|%property{ProcessID}|%thread|%message%newline"/>
>     </layout>
>   </appender>
> Thanks,
> Sachin Patil



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to