Am new to this topic and trying to create a fallback functionality on failure of log4net. and ofcs I have gone through few posts that is related to this topic.
https://moaid.codes/post/writing-failover-appender-for-log4net/ My Custom Log4net Asynch Failover Appender Skips Messages
Below is the simple implementation I have.
public class ActivityLog : AppenderSkeleton
{
public void Add(int Id)
{
ILog _logger = LogManager.GetLogger("FallbackLogger");
_logger.Info("FallbackLogger");
}
}
protected override void Append(LoggingEvent loggingEvent)
{
if (loggingEvent == null)
throw new ArgumentNullException("LoggingEvent");
}
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<file value="Nets\" />
<appendToFile value="true" />
<maxSizeRollBackups value="10" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<conversionPattern value="%date{ISO8601} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="ActivityLog" type="log4net.Appender.RollingFileAppender,log4net">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appender-ref ref="FallbackLogger" />
<file value="Nets\" />
<appendToFile value="true" />
<maxSizeRollBackups value="10" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<conversionPattern value="%date{ISO8601} %message%newline" />
</layout>
</appender>
<appender name="FallbackLogger" type="log4net.Appender.RollingFileAppender,log4net">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<file value="Nets\" />
<appendToFile value="true" />
<maxSizeRollBackups value="10" />
<rollingStyle value="Date" />
<staticLogFileName value="true" />
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingLogFileAppender" />
</root>
<logger additivity="false" name="UserActivityLog">
<level value="ALL" />
<appender-ref ref="UserActivityLog" />
</logger>
<logger additivity="false" name="FallbackLogger">
<level value="ALL" />
<appender-ref ref="FallbackLogger" />
</logger>
</log4net>
</configuration>
and above is my log4net.Config
My question is that, none of this configuration does not trigger the Append() function at all & how do I configure this function to trigger and right to log when there is a log4net failure. Obviously, I am doing something not correct.