Try adding the thread name to your conversion to ensure it is a different
thread
<conversionPattern value="%level %date{yyyy-MM-dd'T'HH:mm:ss.fffzzz
<http://opengrok.factset.com/source/s?path=ss.fffzzz&project=/platform/wauds/mainline>}
%property{hostname} [%thread] %property{guid} %message%newline" />
It seems more likely that a thread is being reused.
Mike
On Thu, Aug 14, 2014 at 10:51 AM, Ananth Tatachar <[email protected]
> wrote:
> I am working with log4net version : 1.2.12.0 .
>
>
>
> I am getting inconsistent results , while using RollingFileAppender with
> BufferingForwardAppender.
>
> My application is a multithreaded application. I spawned 5 threads Each
> will call the constructor of MyClass and SomeFunction once.
>
> My application's sertup is as follows:
>
>
>
> Web.config:
>
> -------------------------------
>
> <appender name="RollingLocalFileAppender" type="
> log4net.Appender.RollingFileAppender
> <http://opengrok.factset.com/source/s?path=log4net.Appender.RollingFileAppender&project=/platform/wauds/mainline>
> ">
> <file type="log4net.Util.PatternString
> <http://opengrok.factset.com/source/s?path=log4net.Util.PatternString&project=/platform/wauds/mainline>
> " value="C:\Logs\TFile.log" />
> <rollingStyle value="Date" />
> <datePattern value="yyyy-MM-dd" />
> <maxSizeRollBackups value="10" />
> <appendToFile value="true" />
> <layout type="log4net.Layout.PatternLayout
> <http://opengrok.factset.com/source/s?path=log4net.Layout.PatternLayout&project=/platform/wauds/mainline>
> ">
> <conversionPattern value="%level %date{yyyy-MM-dd'T'HH:mm:
> ss.fffzzz
> <http://opengrok.factset.com/source/s?path=ss.fffzzz&project=/platform/wauds/mainline>}
> %property{hostname} %property{guid} %message%newline" />
> </layout>
> </appender>
> <appender name="BufferedFileAppender" type="
> log4net.Appender.BufferingForwardingAppender
> <http://opengrok.factset.com/source/s?path=log4net.Appender.BufferingForwardingAppender&project=/platform/wauds/mainline>
> ">
> <bufferSize value="512" />
> <evaluator type="log4net.Core.TimeEvaluator
> <http://opengrok.factset.com/source/s?path=log4net.Core.TimeEvaluator&project=/platform/wauds/mainline>
> ">
>
> <interval value="10" />
> <!--Send buffered events immediately if 10 seconds pass-->
> </evaluator>
> <Fix value="0" />
> <!--Buffering can have severe performance degradation if this is set
> to the default (ALL)-->
> </appender>
>
>
>
>
>
> Logging Class:
>
> --------------------------
>
>
>
> Class MyClass
>
> {
>
> public MyClass()
>
> {
>
> Log4net.ThreadContext.Properties["guid"] = Guid.NewGuid();
>
> }
>
>
>
> public void SomeFunction()
>
> {
>
> Ilog log = LogManager.GetLogger(typeof(MyClass));
>
> Log.Info("my message");
>
> }
>
>
>
> }
>
>
>
>
>
> Tfile.log(Result)
>
> ----------------------
>
> Observed Results:
>
>
>
> INFO 2014-08-14T10:47:36.659-04:00 ANANTHTATACHAR MyAudsDigest
> [LQR-Y8c71EmtWl7ZqItYoQ] my message
>
> INFO 2014-08-14T10:47:36.659-04:00 ANANTHTATACHAR MyAudsDigest
> [9hDzS-_Su0SrEoXZF_aGMw] my message
>
> INFO 2014-08-14T10:47:36.729-04:00 ANANTHTATACHAR MyAudsDigest
> [GsxT7aTfNEq1uIsqPYeZ5w] my message
>
> INFO 2014-08-14T10:47:36.789-04:00 ANANTHTATACHAR MyAudsDigest
> [9hDzS-_Su0SrEoXZF_aGMw] my message
>
> INFO 2014-08-14T10:47:36.955-04:00 ANANTHTATACHAR MyAudsDigest
> [9hDzS-_Su0SrEoXZF_aGMw] my message
>
>
>
>
>
>
>
> Expected Results:
>
> Unique guid in all the messages.
>
>
>
>
>
>
>
>
>
>
>
>
> --------------------------------------------------------------------------------------------------------------------------------------
>
>
>
> I understand that Fix value NONE in
> log4net.Appender.BufferingForwardingAppender
> <http://opengrok.factset.com/source/s?path=log4net.Appender.BufferingForwardingAppender&project=/platform/wauds/mainline>
> will not fix any volatile variables , but making it all results in all my
> guids in all the 5 messages becoming same.
>
>
>
> Could anybody please tell me how to fix this issue?
>