使用多个 log4net 文件记录器

2024-03-30

我有文件附加器 FileA、FileB 和 FileC。我将 FileA 添加到根元素,因为我希望它成为一个包罗万象的元素(下面将详细介绍)。我将 FileB 和 FileC 用于特定消息,并为每个附加程序创建命名记录器。在代码中,我加载用于大多数消息的日志,如下所示:

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

其他记录器,我这样加载

private static readonly log4net.ILog commandLog = log4net.LogManager.GetLogger("LoggerFileB");

发生的事情是我在 LoggerFileB 中得到了我所期望的,即只有特殊消息。问题是这些消息也出现在 LoggerFileA 中,这是我添加到 root 中的所有内容。我可以为包罗万象创建一个特定的命名实例,而不是将其添加到根元素,但我希望调用类型作为输出中的记录器名称。创建命名记录器意味着 %logger 输出日志的名称而不是类型。有没有一种方法可以准确地获得我想要的内容(将记录器名称显示为类型,但不显示记录到其他命名记录器的消息)?希望我遗漏了一些东西并且有一个简单的解决方案。

下面是我的 log.config 在这种情况下的示例。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <log4net>
        <appender name="FileA" type="log4net.Appender.RollingFileAppender">
            <file value="FileA.txt" />
            ...snip...
        </appender>
        <appender name="FileB" type="log4net.Appender.RollingFileAppender">
            <file value="FileB.txt" />
            ...snip...
        </appender>
        <appender name="FileC" type="log4net.Appender.RollingFileAppender">
            <file value="FileC.txt" />
            ...snip...
        </appender>
        <root>
            <level value="ALL" />
            <appender-ref ref="LoggerFileA" />
        </root>
        <logger name="LoggerFileB">
            <level value="ALL" />
            <appender-ref ref="FileB" />
        </logger>
        <logger name="LoggerFileC">
            <level value="ALL" />
            <appender-ref ref="FileC" />
        </logger>
    </log4net>
</configuration>

您可以使用设置additivity为假:

<logger name="LoggerFileB" additivity="false">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用多个 log4net 文件记录器 的相关文章

  • log4net 通过异常参数向数据库表添加完整的堆栈跟踪

    对于 log4net 配置 这是我的参数设置
  • 使用 Windows Azure DiagnosticsMonitor 时,log4net traceappender 仅记录级别为“详细”的消息

    我有一个天蓝色的辅助角色 我已将其配置为使用写入 WindowsAzure Diagnostics 的 log4net Trace Appender 这是通过在辅助角色的 RoleEntryPoint 中进行以下调用来完成的 using S
  • log4net 日志正在创建但仍为空

    我正在尝试使用log4net http logging apache org log4net 当我启动应用程序时 它会创建日志文件 但无论我调用多少次Log Info Application Started 它仍然是空的 我研究了谷歌返回的
  • 程序集未加载 C#

    我有一个项目Common其中包含一个 log4net CustomAppender 我在所有其他项目中引用该项目并在中配置 log4net 附加程序app config 一切都很顺利 除了一个项目在尝试实例化 Appender 时失败了 输
  • Orchard CMS 如何进行日志记录?

    我正在使用 Orchard CMS 它对我来说是更好的 CMS 我想了解它如何进行日志记录以及我是否可以添加自己的日志记录 我看到果园使用NullLogger类 它不起作用 我已打开 App Data Logs 文件夹并看到其中有日志文件
  • 使用 log4net 进行日志记录的最佳实践是什么?

    有人告诉我使用 log4net 将 日志记录 添加到我的代码中 问题是没有人可以及时旅行并查看日志记录需要用来解决哪些现实世界问题 因此 是否有一套关于记录哪些内容以获得合理的成本 收益权衡 所以 应该添加什么类型的日志记录 到一个有用的应
  • Log4Net 部署时不记录日志

    我正在使用 log4net 来记录我的应用程序 这是一个 WPF 应用程序 日志记录在调试模式下运行良好 但不适用于我部署的版本 该应用程序安装在 C Program Files x86 MyApp 中 我使用 InnoSetup 创建安装
  • Log4Net 中 AdoNetAppender 中的缓冲区的惰性评估

    我正在使用 Log4Net 自定义属性将一些环境信息添加到我的日志中 我创建了一个具有全局可访问属性的实用程序类 我的程序类使用它来存储上下文信息 订单 id 用户 id 等 以及围绕它们的惰性包装器 因此我不需要一直更改 Log4Net
  • Log4Net:使用 UTC 时间记录

    使用 log4net 1 2 11 0 w NET 如何让 RollingFileAppender 输出 UTC 日期 根据 Apache 的说法 它应该很简单
  • Log4Net 或 NLog(或其他记录器)是否有办法以执行堆栈嵌套 XML 或 JSON 格式输出日志?

    Log4Net 或 NLog 或其他记录器 中是否有一种方法可以以执行堆栈嵌套 XML 或 JSON 格式输出日志 这样 if 函数A calls B 7 那个叫C something 它会输出类似以下内容
  • log4net 何时将日志写入或提交到文件?

    我们使用 log4net 来记录 winform 应用程序的事件和错误 我们的客户希望在应用程序运行期间检查日志文件 但我无法找出 log4net 何时以及如何执行写入 提交 操作 以及如何满足客户的要求 除了我自己创建另一个记录器 有什么
  • 控制台应用程序的 log4net 配置

    谁能建议如何为控制台应用程序配置 log4net 或者至少如何 在哪里捕捉Application Start事件 看来此时需要一些电话 提前致谢 尝试写作 assembly log4net Config XmlConfigurator Wa
  • 如何禁止在应用程序启动时创建空日志文件?

    我已经在我的应用程序中成功配置了 log4net 但有一件事对我来说有点烦人 即使没有发生错误 日志文件也会在我的应用程序启动后创建 空 我想仅在出现错误后才创建日志文件 我实际上在这个线程中找到了一种方法来做到这一点 http www l
  • log4net 控制台应用程序未登录发布

    我有一个使用 log4net 的控制台应用程序 通过温莎城堡 当我调试时 一切都很好地记录到控制台 但是当我发布并运行应用程序时 没有记录任何内容 我的 log4net 配置位于单独的文件 log4net config 中 我认为它没有找到
  • Log4Net 和 GAC - 如何引用配置文件?

    我在开发过程中使用 log4net 作为项目约束的一部分 我现在需要将其添加到全局程序集缓存中 日志记录定义位于文件 Log4Net xml 中 该文件在我的 assemblyinfo 中引用为 程序集 log4net Config Xml
  • Log4Net:滚动文件附加器,定义扩展名

    我希望我的日志文件看起来像这样 2009 02 13 log 但问题是我似乎找不到任何方法来添加 log 扩展名 我尝试了很多方法但没有任何帮助 这就是我到目前为止所拥有的
  • 我在这个 log4net 实现中做错了什么?

    与许多其他人一样 我正在尝试将 Log4net 实现到我的 C net 应用程序中 但我无法让它为我工作 我已经做了很多搜索 包括在这个网站上 并尝试了许多不同的解决方案 但还没有任何对我有用的解决方案 所以简单的问题是 我做错了什么 As
  • nHibernate 使用 Log4Net 进行日志记录,线程会话问题

    大家好 这里有一个小问题 我正在努力解决这个问题 我目前正在开始使用 nHibernate 由于工作需要 我不得不这样做 并且我在 nHibernate 的会话和多线程方面遇到了一些困难 我想在这里完成的任务是让 Log4Net 将所有内容
  • 记录时何时出现致命错误?

    在 log4j 和 log4net 等日志框架中 您可以记录各种级别的信息 大多数级别都有明显的意图 例如 调试 日志与 错误 日志是什么 然而 我一直害怕的一件事是将我的日志记录归类为 致命 哪种类型的错误如此严重以至于应被归类为致命错误
  • 在目标 VS 安装时,VSIX 扩展内部使用的 WPF-Log4Net 未输出日志

    当 Log4net 在 VSIX 扩展中使用并安装在另一个目标 VS 上时 它不会记录日志 我有一个 WPF 解决方案 我下载了 log4net dll 添加了 log4net config 并将 复制到输出目录 值设置为 始终复制 log

随机推荐

  • ng-reflect-model 显示正确的值但未反映在输入中

    遇到一个非常奇怪的问题 我的应用程序在非常特定的用户案例中行为不当 我有一个门户 用户可以在其中添加问题和答案 然后进行编辑 在这种情况下 当我删除一个集合 q a 然后尝试添加它时 模型正在更新 但我的视图从占位符中获取值并自行更新 这里
  • 使用 opencv 调整视频大小并保存

    我正在尝试使用 opencv 重新调整视频大小 然后将其保存回我的系统 代码有效并且不会给出任何错误 但输出视频文件已损坏 我使用的 fourcc 是 mp4v 与 mp4 配合良好 但输出视频仍然损坏 需要帮忙 import numpy
  • 我可以阻止 Blazor 中的导航吗?

    在 Blazor 服务器端应用程序中 是否涉及一些执行实际导航的 javascript 例如当用户点击链接时 我的意思是像window history pushState 理论上是否可以覆盖该 javascript 以防止在某些情况下 当页
  • 当文本发生变化并满足一定条件时更改文本框的前景色

    当文本框中的文本发生变化并满足特定条件时 我需要设置文本颜色 我可以从代码后面实现这个文本框 文本已更改事件和设置笔刷颜色到所需的颜色 但我无法使用 xaml wpf 方法来实现这一点 我是 wpf 新手 我不确定当文本框中的文本更改时如何
  • 如何在 ASP.NET MVC 5 中实现自定义身份验证

    我正在开发 ASP NET MVC 5 应用程序 我有一个现有的数据库 我从中创建了 ADO NET 实体数据模型 我在该数据库中有一个表 其中包含 用户名 和 密码 列 我想使用它们在我的 Web 应用程序中实现身份验证和授权 由于客户的
  • 如何将对齐按钮添加到 Quill 的工具栏?

    我正在尝试将对齐按钮添加到 Quill 编辑器工具栏 工具栏文档 https quilljs com docs modules toolbar 不是很详细 它展示了如何选择对齐选项 但我想要一组并排的切换按钮 这可能吗 你可以做align
  • 在@SpringBootTest中测试@Async注释的方法

    我有一个服务 SomeService 它有一种方法来执行一些逻辑 Override public CompletableFuture
  • 使用 TFS 标签(例如 SourceSafe 标签)

    我们有一个相当标准的发布程序 使用 Visual Source Safe 在发布之前标记构建 这允许我们在出现任何问题时从该标签中获取数据 并在需要更改时使用它进行分支 我们有几个不同的项目 并且总是使用构建版本号进行标记 例如 V1 0
  • KnockoutJS JQuery 组合框绑定

    我想为淘汰赛制作一个绑定 它使用JQuery 自动完成组合框 http jqueryui com demos autocomplete combobox并允许 2 路绑定 http jsfiddle net rniemeyer PPsRC
  • Redux createStore() 已弃用 - 无法在 Redux 操作中从 getState() 获取状态

    So the createStore Redux 现已弃用 并且configureStore 推荐自 reduxjs 工具包 https redux toolkit js org 我很确定这与无法获得有关userInfo状态使用getSta
  • RxAndroid按钮点击观察者?

    各位程序员大家好 我使用 RxAndroid 在按下按钮时每 3 秒进行一次间隔 API 调用 private final CompositeDisposable disposables new CompositeDisposable Ob
  • Java 中的 XML 语法验证 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我一直在试图弄清楚如何检查 XML 文件的语法 确保所有标签都已关闭 没有随机字符等 此时我关心的是确保文件中没有损坏的 XML文件 我一
  • 以编程方式删除标准 UITableView 中的栏

    有谁知道是否可以在代码中从 UITableView 中删除顶栏 那么在这种情况下 删除 书籍 栏吗 self navigationController setNavigationBarHidden YES
  • Powershell Get-ChildItem -Filter 的操作方式与具有相同值的Where 子句不同

    我的服务器上有一个名为 MyFolder 的文件夹 还有其他文件夹称为 MyFolder 1 MyFolder 2 MyFolder 3 等 如果我运行 gci C Sample Name like MyFolder 我得到预期的输出 Di
  • 可以在透明背景PNG图像上创建CSS阴影吗?

    有人知道是否可以在透明背景 PNG 图像上创建基于 css 的阴影 也许使用 CSS3 jquery 或者最后是服务器端 我想要实现的效果示例 非常确定是否可能它不会跨浏览器 但如果它性能良好 愿意应用吗 请随意添加您的意见 开放技术讨论
  • 在struts 2对话框中显示错误消息?

    我在 Struts 2 中有一个登录表单 其中包含用户名和密码字段 我想要的是当用户提交表单时 如果它不是有效用户 我想在对话框中显示错误消息 而不是在登录表单本身中显示错误消息 struts 2 中是否有可用的标签 或者有 人可以向我指出
  • Play Framework——向类路径添加新目录

    我希望能够有一个单独的目录 可以将代表插件的 jar 文件添加到 Play 2 0 项目中 Jar 文件通常保存在 Play 中的 lib 目录下 我想将我的 jar 放在一个名为 plugins 的目录中 这个问题之前被问过 但建议是只使
  • 在 Java 和 C# 中计算 SHA-1 哈希值

    在 Java 和 C 中计算 SHA 1 哈希值 我正在尝试在 C 应用程序中复制 Java 应用程序的逻辑 其中一部分涉及生成密码的 SHA 1 哈希值 不幸的是我无法从 Java 和 C 获得相同的结果 C Output 64 0a b
  • NotImplementedError:frozendict 不支持“更新” - Odoo v8

    我的 Odoo v8 模块上有以下代码 api multi def button generate wh doc self context self context partner self env res partner res for
  • 使用多个 log4net 文件记录器

    我有文件附加器 FileA FileB 和 FileC 我将 FileA 添加到根元素 因为我希望它成为一个包罗万象的元素 下面将详细介绍 我将 FileB 和 FileC 用于特定消息 并为每个附加程序创建命名记录器 在代码中 我加载用于