[ 
https://issues.apache.org/jira/browse/LOG4NET-283?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Bodewig resolved LOG4NET-283.
------------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 1.2 Maintenance Release)
                   1.2.12

svn revision 1211480 introduces a virtual FirstError method.
                
> OnlyOnceErrorHandler is not subclass-friendly
> ---------------------------------------------
>
>                 Key: LOG4NET-283
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-283
>             Project: Log4net
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 1.2.10
>         Environment: Windows 7, IIS 7, .Net 3.5, C#
>            Reporter: Randar Puust
>             Fix For: 1.2.12
>
>
> If you ever try to use the ErrorHandler attribute with a custom error 
> handler, it won't write out the messages.  For example:
>   <appender name="Database_Appender" type="log4net.Appender.AdoNetAppender">
>    <errorHandler type="CHO.Next.Global.LogWriterErrorHandler, 
> CHO.Next.Global" />
> Where the class is defined as:
>     public class LogWriterErrorHandler : OnlyOnceErrorHandler
>     {
>         
>         public new void Error(string message)
>         {
>             Error(message, null);
>         }
>         public new void Error(string message, Exception e)
>         {
>             Error(message, e, ErrorCode.GenericFailure);
>         }
>         public new void Error(string message, Exception e, ErrorCode 
> errorCode)
>         {
>           // write to a file here
>          }
>      }
>      
> This was specified as a fix on a few posts like this 
> http://www.mail-archive.com/log4net-user@logging.apache.org/msg04378.html and 
> there hasn't been anything to correct it.
> The reason this won't work is that Error is not virtual.  Although the 
> LogWriterErrorHandler is instantiated and the constructor is called, when the 
> appender makes a call to this.ErrorHandler.Error, it calls the base class of 
> OnlyOnceErrorHandler and not LogWriterErrorHandler.  
> I would recommend you make the Error methods in AppenderSkeleton virtual so 
> that they can be overriden.  Otherwise, what is the value of even having the 
> ErrorHandler attribute available on the appender?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to