Log4Net - 我可以在 Config 中拥有自定义部分名称吗

2023-12-20

我需要在配置部分使用除 log4net 之外的部分名称。我知道这是我们通常使用的

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

但我需要有一个这样的部分

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

我正在开发一个 sitecore 网站,它有自己的 Sitecore.Logging dll,它也源自 log4net。所以 Sitecore Logging dll 指的是 web.config 中的 log4net 部分

我们的自定义 log4net 附加程序仅适用于 log4net,不适用于 sitecore.logging dll。所以我想我的项目中可以有两个记录器,sitecore.logger 和 log4net 记录器。 Sitecore.logger 使用 log4net 部分,因此我希望 log4net 使用不同的部分 anme,例如 log2net

我尝试通过在配置中包含 log2net 部分来使用下面的代码。

但我收到错误 log4net:ERROR XmlHierarchyConfigurator: Xml element is - not a log4net element。

 XmlElement element = (XmlElement)ConfigurationManager.GetSection("log2net");
        log4net.Config.XmlConfigurator.Configure(element); 

任何人都可以帮忙吗?


我无法重现您遇到的异常,但查看其详细信息和code of XmlHierarchyConfigurator class http://log4net.sourcearchive.com/documentation/1.2.10plus-pdfsg/XmlHierarchyConfigurator_8cs-source.html,当根xml元素名称不是时抛出异常log4net这正是你想要做的。

您可以尝试做的是:

  1. 阅读您的定制log2net XmlElement
  2. 创建一个新的log4net XmlElement
  3. 复制你的所有孩子log2net到新的log4net element
  4. Execute XmlConfigurator.Configure()方法传递你的新log4net元素。
XmlElement element = (XmlElement)ConfigurationManager.GetSection("log2net");

XmlElement newLog4net = element.OwnerDocument.CreateElement("log4net");

for (int i = 0; i < element.ChildNodes.Count; i++)
{
    XmlNode child = element.ChildNodes[i];
    newLog4net.AppendChild(child.CloneNode(true));
}

log4net.Config.XmlConfigurator.Configure(newLog4net); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Log4Net - 我可以在 Config 中拥有自定义部分名称吗 的相关文章

随机推荐

  • 如何仅选择/格式化字典中的值到列表或 numpy 数组中?

    如何让它只打印平均值列表 我只需要它与我的 np 格式完全相同 数组 以便我可以比较它们以查看它们是否相同 Code import numpy as np from pprint import pprint centroids np arr
  • 跟踪 aws lambda/cloudwatch 日志

    了解如何访问 lambda 日志另一个答案 https stackoverflow com questions 47846959 how do you look at console log output of the amazon lam
  • 可以让 jqGrid 搜索框留在页面上吗?

    现在 我必须单击 jqGrid 搜索图标才能弹出搜索框 我想做的是始终在网格上方打开搜索框 而不是弹出窗口 我在他们的演示中没有看到任何内容 但我希望有人已经做到了或知道如何做到 做你需要的最简单的方法是 var grid list prm
  • 将 Woo Commerce 下拉菜单转换为单选按钮

    我在将变体下拉列表转换为支持 woocommerce 的网站的单选按钮时遇到问题 我已经尝试找到答案here https stackoverflow com questions 11819604 dropdown converted to
  • Android BLE Gatt 特性 WRITE_TYPE_NO_RESPONSE 不起作用

    我开发了一个连接到 CC2540 BLE 外设的 Android 应用程序 当我执行类型为无响应 WRITE TYPE NO RESPONSE 的特征写入时 我仍然会在应用程序级别收到 onCharacteristicWrite 回调 这种
  • 转换到 Swift 3 的困难

    从 Swift 2 转换到 Swift 3 后 即使在转换编辑 gt 转换 gt 到当前的 swift 语法之后 我收到很多错误 尤其 在我下载此 beta Xcode 8 0 并转换为 Swift 3 之前 我的项目总共显示了 90 个错
  • 删除大标题 UINavigationBar 中 UISearchController 顶部的 1px 行

    我正在从大风格的视图过渡UINavigationItem进入具有大风格的视图UINavigationItem and a UISearchController 我已经自定义了背景颜色UINavigationBar 由于某种原因 之间有 1p
  • PsExec 仅适用于“runas /netonly”,不适用于 -u 和 -p 参数

    我的意思是说 If I run runas netonly user computername username cmd 输入本地管理员帐户 用户名 的密码 然后输入psexec computername cmd 我现在有了一个工作 she
  • 获取脚本标签的数据属性?

    假设我有以下脚本标签 在那之内embed js文件 我怎样才能得到它的值data id属性 我正在努力保持embed js文件尽可能轻 所以理想情况下不需要使用某种 JavaScript 库 对于支持 html5 的现代浏览器 您可以使用d
  • 我可以多次使用

    标签,一个用于桌面,另一个用于移动吗?

    我正在使用 bootstrap 3 html 5 我的问题是 我可以使用 h1 在同一页面中多次标记 我正在使用一个 h1 对于桌面和其他 h1 对于移动设备 搜索问题后我有点困惑 任何人都可以正确地建议我正确的方法吗 我的代码如下 这些代

  • 天蓝色表存储中的事务

    假设我有 using TransactionScope scope new TransactionScope if IndexExists index RowKey DeleteIndex index RowKey deletes usin
  • iOS:如何写入项目中特定目录的文件?

    我正在尝试将我在应用程序中收集的一些字符串输出到文本文件中 文本文件将始终存在于我的项目中 如下所示 我试图用新的 多行 字符串覆盖文件中的所有内容 func writeFile let theFile FileHandle FileHan
  • 使用 javascript 执行器为 selenium webdriver ruby​​ 绑定脚本启用禁用字段

    我正在 Selenium Webdriver 脚本中编写以下 Ruby 代码 以通过 Javascript 执行器启用 UI 上的禁用字段 browser execute script browser find element xpath
  • 三个彼此相邻的 DIV,具有流畅的水平宽度

    我需要知道如何将所有三个 div 与所有不同的背景图像对齐 中间的 div 需要为 989px 左 div 和右 div 的宽度并不重要 简而言之 http jsfiddle net hobobne qyGC5 http jsfiddle
  • 在 Mobile Safari 中保持 WebSocket 处于活动状态

    一旦屏幕锁定 是否可以在 Mobile Safari 中保持 html 5 网页 WebSocket 连接打开 我想向用户发送全天的持续更新 而他们的屏幕必须始终解锁才能接收这些通知 这似乎很愚蠢 还有其他选择吗 我认为当浏览器处于后台或屏
  • Java BufferedReader 返回文本文件的顶部?

    我目前有 2BufferedReaders 在同一文本文件上初始化 当我读完第一个文本文件后BufferedReader 我使用第二个从顶部再次遍历文件 需要多次遍历同一文件 我知道关于reset 但需要先调用mark and mark 需
  • 如何在mongo中插入带有日期的文档?

    我们正在尝试插入一个以当前日期作为字段的文档 我们正在使用 mongodb 的 eclipse 插件用 java 编写 我们想要执行Date mongo 命令从 mongo 获取日期 而不是从 java 获取日期 我怎样才能执行这个 mon
  • 如何将 C 函数移动到单独的文件中?

    我正在开始 C 编程 我目前有一个包含很多函数的大文件 我想将这些函数移至单独的文件中 以便代码更易于阅读 但是 我似乎无法弄清楚如何正确包含 编译 并且在我找到的任何在线教程中都找不到示例 这是一个简化的示例 include
  • CSS 字体未在 IE9 中加载

    我遇到了 font face 字体无法在 IE9 中加载的问题 IE8 及更低版本运行完美 就像我尝试过的所有其他浏览器一样 这是我的 CSS 字体松鼠语法 font face font family ssmicon src url ssm
  • Log4Net - 我可以在 Config 中拥有自定义部分名称吗

    我需要在配置部分使用除 log4net 之外的部分名称 我知道这是我们通常使用的 section type section 但我需要有一个这样的部分 section type section 我正在开发一个 sitecore 网站 它有自己