logging-log4net-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "rauzy (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LOG4NET-198) Memory leak on a very basic code
Date Sat, 07 Feb 2009 11:40:59 GMT

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

rauzy commented on LOG4NET-198:
-------------------------------

I have fixed this issue by editing Logger.cs and adding the following line in Log : GC.Collect();

See below:

		virtual public void Log(Type callerStackBoundaryDeclaringType, Level level, object message,
Exception exception) 
		{
			try
			{
				if (IsEnabledFor(level))
				{
					ForcedLog((callerStackBoundaryDeclaringType != null) ? callerStackBoundaryDeclaringType
: ThisDeclaringType, level, message, exception);
                    GC.Collect();
				}
			}
			catch (Exception ex)
			{
				log4net.Util.LogLog.Error("Log: Exception while logging", ex);
			}
			catch
			{
				log4net.Util.LogLog.Error("Log: Exception while logging");
			}
		}


> Memory leak on a very basic code
> --------------------------------
>
>                 Key: LOG4NET-198
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-198
>             Project: Log4net
>          Issue Type: Test
>          Components: Core
>    Affects Versions: 1.2.10
>         Environment: windows xp sp3
>            Reporter: rauzy
>         Attachments: WindowsFormsApplication1.zip
>
>
> I build a simple form with a single button that start a timer execute every second, the
task of this timer is to execute the following line:
> log.Debug("Hello");
> and I observe a memory leak.
> See Below.
> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Data;
> using System.Drawing;
> using System.Text;
> using System.Windows.Forms;
> using log4net;
> using log4net.Config;
> namespace WindowsFormsApplication1
> {
>     public partial class Form1 : Form
>     {
>         private static readonly ILog log = LogManager.GetLogger(typeof(Form1));
>         public Form1()
>         {
>             InitializeComponent();
>         }
>         private void button1_Click(object sender, EventArgs e)
>         {
>             XmlConfigurator.Configure();
>             FreqTimers.Start();
>         }
>         private void FreqTimers_Tick(object sender, EventArgs e)
>         {
>             log.Debug("demo");
>         }
>     }
> }
> with an app.config like 
> <?xml version="1.0" encoding="utf-8" ?>
> <configuration>
>   <configSections>
>     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net" />
>   </configSections>
>   <log4net debug="true">
>     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
>       <file value="C:\\Temp\\TestMailer.log" />
>       <appendToFile value="true" />
>       <rollingStyle value="Size" />
>       <maxSizeRollBackups value="10" />
>       <maximumFileSize value="10MB" />
>       <staticLogFileName value="true" />
>       <layout type="log4net.Layout.PatternLayout">
>         <conversionPattern value="%-5p %d - %m  %-18.18M %n" />
>       </layout>
>     </appender>
>     <root>
>       <level value="DEBUG" />
>       <appender-ref ref="RollingLogFileAppender" />
>     </root>
>   </log4net>
> </configuration>
> If you monitor the application, you see that the memory usage increase. Why? I can post
the source solution if needed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message