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

标签 json configuration log4net asp.net-core asp.net-core-mvc

我正在阅读 Scott Gu 的博客 ASP.NET 5.0 features并且博客中提到的新功能之一是使用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 中?

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

最佳答案

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

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

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

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

而在 Startup.Startup()方法可以配置log4net提供 xml 作为配置:
public Startup(IApplicationEnvironment appEnv)
{
    // ... 

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

我希望这会有所帮助。

关于json - 如何在 ASP.NET 5.0 中为 log4net(或任何其他第三方库)添加配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28846338/

相关文章:

javascript - ng-repeat 元素仅在第二次运行函数后填充

json - 如何使用 MarkLogic 服务器指定基于 JSON 数组的数据库字段配置?

java - 为加载到 Spring 的 Props 文件中的属性自动修剪尾随空白

c# - .Net Core Worker Service 作为 Windows 服务运行时找不到 log4net.config

json - angularjs + spring mvc + json post 请求

javascript - 使用 d3 没有子节点和父节点的树

PHP Composer : No Dev Mode that Sticks

c# - log4net的线程安全

sql-server-ce - log4net 与 SQL Server CE 不将数据保存到表中

java - 使用 PHP 连接到 MySQL 数据库进行 Android 开发