Constantin Makogon created LOG4NET-647:
------------------------------------------

             Summary: Log4Net do not work inside of Finalize method
                 Key: LOG4NET-647
                 URL: https://issues.apache.org/jira/browse/LOG4NET-647
             Project: Log4net
          Issue Type: Bug
          Components: Core, Other
    Affects Versions: 2.0.8
            Reporter: Constantin Makogon


Log4Net do not log while it's called from Finalize method. It particularly 
annoying if we want monitor destroyed object which was not closed (without call 
to Close method). Inside of Finalize method the logger object is not null but 
has no effect.

Example:
{code:visualbasic}
Class LoggerTest

    Private ReadOnly logger As log4net.ILog = 
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)

    Public Shared Sub Main()
        log4net.Config.XmlConfigurator.Configure(New 
System.IO.FileInfo("LoggerTest.log4net"))

        Dim c As New LoggerTest
        c.SayHello()
    End Sub

    Public Sub SayHello()
        System.Console.WriteLine("hello")
        logger.Info("hello")
    End Sub

    Protected Overrides Sub Finalize()
        System.Console.WriteLine("finalize")
        logger.Info("finalize")
    End Sub
End Class
{code}

Config file

{code:xml}
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level - %message%newline" 
/>
      </layout>
    </appender>
      <root>
      <level value="ALL"/>
      <appender-ref ref="ConsoleAppender"/>
    </root>
  </log4net>
</configuration>
{code}

 
Result:

{code}
hello
2020-04-07 15:33:30,399 [1] INFO  - hello
finalize
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to