Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to add configuration for log4net (or any other 3rd party library) in ASP.NET 5.0

I was reading Scott Gu's blog on ASP.NET 5.0 features and one of the new feature mentioned in the blog is to use json file as configuration and elimination of Web.config file.

I have few questions around that feature.

Assume I have following log4net configuration which was previously added to Web.Config in previous version of ASP.NET

Config file

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="C:\\TestProj\\TestLog.txt" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="10MB" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
  </layout>
</appender>

<root>
  <level value="DEBUG" />
  <appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>

How would one add sections in config.json ?

How would one convert above xml and add it to config.json?

Does 3rd Party library ( In my example log4net ) or users of the library have to add some type of custom conversion api to support json based configuration, in order to take advantage of new configuration feature provided in ASP.NET 5.0?

like image 364
N30 Avatar asked Mar 04 '15 03:03

N30


People also ask

Where do I put log4net in web config?

Add log4net in config file config and enter the following details. Add a class Log. cs in the Utilities folder. Now, in the constructor of this class, instantiate logs for monitoring and debugger loggers.


1 Answers

Recently I had the same problem with log4net. I managed to do it working as following:

Create log4net.xml file containing the configuration section for log4net

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
...
</log4net>

You can put the file in the project root folder.

And in the Startup.Startup() method you can configure the log4net providing the xml as a configuration:

public Startup(IApplicationEnvironment appEnv)
{
    // ... 

    XmlConfigurator.Configure(new FileInfo(Path.Combine(appEnv.ApplicationBasePath, "log4net.xml")));
}

I hope this helps.

like image 196
Dilyan Dimitrov Avatar answered Sep 28 '22 17:09

Dilyan Dimitrov