Reputation: 227
I'm implementing log4net AsyncBufferingForwardingAppender in asp.net core 2.0, but I guess it is not supporting.
I have implemented log4net RollingFileAppender in core 2.0 & it worked successfully using log4.net config.
I am trying below code:
// sLoggerName = "BasicLogger"
internal static ILog Initialize(string sLoggerName)
{
ILog objlogger = null;
try
{
#region Log4net_Configuration
XmlDocument log4netConfig = new XmlDocument();
log4netConfig.Load(File.OpenRead("log4net.config"));
var repo = log4net.LogManager.CreateRepository(Assembly.GetEntryAssembly(),
typeof(log4net.Repository.Hierarchy.Hierarchy));
log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);
#endregion
objlogger = log4net.LogManager
.GetLogger(log4net.LogManager.CreateRepository(Assembly.GetEntryAssembly(),
typeof(log4net.Repository.Hierarchy.Hierarchy)).Name, sLoggerName);
// Iterating through each appender
object[] objAppenders = objlogger.Logger.Repository.GetAppenders();
foreach (object item in objAppenders)
{
var objFile = item as AppenderSkeleton;
if (objFile != null)
{
objFile.ActivateOptions();
}
}
// Checking logger
if (objlogger.Logger.Name != sLoggerName)
{
objlogger = null;
}
}
catch (System.Exception)
{
// Handle exception
}
return objlogger;
}
My log4net.config file configuration is as given below:
<?xml version="1.0"?>
<log4net>
<appender name="Basic" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Logs/Basic.log"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<param name="AppendToFile" value="true"/>
<param name="Threshold" value="INFO" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<maxSizeRollBackups value="300" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date{yyyy/MM/dd HH:mm:ss,fff}	[%-5p]	[%3t]	%m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="INFO" />
</filter>
</appender>
<appender name="BasicAsyncBufferingForwarder" type="Easy.Logger.AsyncBufferingForwardingAppender">
<lossy value="false" />
<bufferSize value="500" />
<idleTime value="3000" />
<fix value="Message, ThreadName, Exception" />
<appender-ref ref="Basic" />
</appender>
<logger name="BasicLogger">
<level value="ALL" />
<appender-ref ref="BasicAsyncBufferingForwarder" />
</logger>
</log4net>
Count of objAppenders is always 0.
Is am I missing in coding?
Thank you
Upvotes: 2
Views: 873
Reputation: 316
Please recheck your type field...
It must be type="Easy.Logger.AsyncBufferingForwardingAppender, XXX"
XXX = "Assembly Name"
Refer below link https://github.com/NimaAra/Easy.Logger
Upvotes: 2