【问题标题】:Log4Net multiple configurations in single config fileLog4Net 单个配置文件中的多个配置
【发布时间】:2015-11-18 10:05:33
【问题描述】:

是否有可能创建单个 log4net.config 文件包含多个配置。我想根据某种参数创建不同的日志,这些参数将从记录器配置文件中使用附加程序选择适当的配置。

例如我有两个不同的项目,在每个项目中我都需要创建不同的日志。通过在 assembly.info 中为两个项目配置文件读取相同的内容并提供某种参数,我可以选择在项目中使用不同的记录器配置。

如果能提供任何帮助,我将不胜感激。

【问题讨论】:

  • 目前还不清楚您要完成什么 - 您可以在配置中定义任意数量的附加程序和记录器,并在运行时用代码交换它们,这就是您的目标之后?
  • 你只能有1个配置,但不同的过滤器来处理不同的情况
  • @stuartd 试图完成的是在解决方案中拥有一个 log4net.config 文件,该文件将被添加(添加现有)到每个项目。此文件应包含每个项目记录器配置,并且项目应选择分配给它的一个(其他记录器应忽略)。
  • 听起来你可以这样做,因为你可以为每个命名空间定义记录器,这意味着它们将在每个项目的基础上运行——所以记录器被称为 Company.Namespace.Project1、Company.Namespace。 Project2 等(记录器名称是继承的,因此适用于整个项目)
  • @stuartd 它有效。非常感谢。

标签: c# log4net


【解决方案1】:

基本上你能做的所有事情都在这里提到: https://logging.apache.org/log4net/release/manual/configuration.html

示例如下:

https://logging.apache.org/log4net/release/config-examples.html

现在,初始化您的 Logger,您可以选择要使用的配置文件。如果您希望它全部在应用程序配置文件中,那么您只需提供一个配置。 但是,如果您需要针对不同的情况(项目/类)有不同的行为,只需指定过滤器,这些过滤器将立即决定应该使用哪个附加程序。

过滤器可以基于类名,例如。在这里检查,因为它已经讨论过: log4net: Configure to ignore messages from a specific class

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 2011-10-09
    • 2015-12-29
    • 1970-01-01
    • 2020-01-02
    • 2018-09-13
    相关资源
    最近更新 更多