c# - 我如何从 app.config 中告诉 log4net 使用哪个 appender

标签 c# logging log4net log4net-configuration

我有一个快速的 log4net 问题。如何从 app.Config 指定要使用的附加程序? 这个特定的配置文件引用了 2 个不同的附加程序。两者都是滚动文件附加程序,但它们指向不同的文件。在整个应用程序中,log4net 被调用并将一个类型传递到构造函数中。像这样……

 private static readonly ILog log = LogManager.GetLogger(typeof(Foo));

log4net 如何知道选择哪个附加程序?您可以将类型映射到特定的命名附加程序吗?我知道 GetLogger 有 5 个构造函数,你能传递一个类型和一个附加程序名称吗?我看到“repositoryName”,不确定那是什么。如果有人能指出我正确的方向,我将不胜感激。我想要一组特定的类型专门记录到一个附加程序。

感谢您的任何提示,
~ck 在圣地亚哥

最佳答案

使用 <logger>元素,使用 Foo 的完整类名:

<logger name="full.parent.namespace.Foo">
  <level value="WARN" />
  <appender-ref ref="SomeAppender" />
</logger>

指定最低级别和对要使用的所需输出附加程序的引用。

您也可以使用单个 <logger>对于特定命名空间中的所有类,省略类名。

<logger name="full.parent.namespace">
  ....
</logger>

关于c# - 我如何从 app.config 中告诉 log4net 使用哪个 appender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3685965/

相关文章:

c# - 在配置准备好之前配置 Serilog?

c# - 如何在磁盘上获取准确的目录大小

c# - 在 con.Open() 之前测试数据库连接是否正常

java - 我的代码可以在没有正常字体模式的情况下登录到 Wildfly 控制台(占用线路)吗?

java - 如何在 Spring Boot 中记录 SQL 语句?

c# - 如何使用 Log4Net 在日志文件中获取当前用户名而不是 AppPool 标识

c# - 如何使用 ADO.NET GetSchema() 只获取用户定义的存储过程?

java - 每当由 DOMConfigurator.configureAndWatch 方法创建的线程重新加载 log4j.xml 时都需要回调

configuration - 再次关于 log4net 和 Unity IOC 配置

c# - log4net - 想要 .net 4.0 版本