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

12
我正在阅读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>

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

如何将上述xml转换并添加到config.json中?

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

2个回答

12

最近我遇到了与 log4net 相同的问题。我通过以下方法使它工作:

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

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

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

并且在 Startup.Startup() 方法中,您可以将xml作为配置项来配置 log4net

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

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

我希望这能有所帮助。


1
是的,您可能需要将其标记为输出文件,以便它包含在发布的应用程序中。 - Robert Cutajar

0

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


你能否提供一个示例,说明该文件应放置在哪里,应命名为什么,应包含什么内容以及如何将其添加到配置系统中(在Startup.cs文件中)? - Matthew K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接