如何在ASP.NET 5.0中添加log4net(或任何其他第三方库)的配置

N30*_*N30 11 configuration log4net json asp.net-core-mvc asp.net-core

我正在阅读Scott Gu关于ASP.NET 5.0功能的博客,博客中提到的一个新功能是使用json文件作为配置和消除Web.config文件.

关于这个功能我几乎没有问题.

假设我有以下log4net配置,之前已添加到以前版本的ASP.NET中的Web.Config

配置文件

<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>
Run Code Online (Sandbox Code Playgroud)

如何在config.json中添加部分?

如何转换上面的xml并将其添加到config.json?

第三方库(在我的示例中为log4net)或库的用户是否必须添加某种类型的自定义转换API以支持基于json的配置,以便利用ASP.NET 5.0中提供的新配置功能?

Dil*_*rov 10

最近我遇到了同样的问题log4net.我设法做到如下工作:

创建log4net.xml包含log4net配置部分的文件

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
...
</log4net>
Run Code Online (Sandbox Code Playgroud)

您可以将该文件放在项目根文件夹中.

在该Startup.Startup()方法中,您可以配置log4net提供xml作为配置:

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

    XmlConfigurator.Configure(new FileInfo(Path.Combine(appEnv.ApplicationBasePath, "log4net.xml")));
}
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.


stu*_*rtd 0

当前版本的 log4net 不支持 Json 项目,因此配置需要位于单独的 xml 文件中。