Apache logging services logo

Apache log4net™ 手册 - 存储库

日志存储库

日志存储库被认为是高级功能。对于大多数用户来说,默认行为应该足够了。

Log4net 支持日志存储库。存储库具有唯一的名称。每个存储库都是一个 (ILoggerRepository)。多个程序集可以链接到同一个存储库。

默认情况下,每个进程(更准确地说,每个 AppDomain)只有一个日志存储库。这扩展到加载到进程中的所有程序集,并允许它们共享一个配置。存储库的配置只需要进行一次,通常在应用程序的入口点进行,可以通过编程方式或使用配置属性进行。

可以使用 LogManager.CreateRepository 方法创建命名日志存储库。可以使用 LogManager.GetRepository 方法检索存储库。以这种方式创建的存储库需要通过编程方式进行配置。

属性

程序集可以选择使用命名日志存储库而不是默认存储库。这完全将程序集的日志记录与应用程序的其余部分隔离开来。这对希望为其组件使用 log4net 但不希望要求使用其组件的所有应用程序都了解 log4net 的组件开发人员非常有用。这也意味着他们的调试配置与应用程序的配置是分开的。程序集应该指定 RepositoryAttribute 来设置其日志存储库。

log4net 日志存储库可以使用以下程序集级属性进行配置

  • AliasRepositoryAttribute

    指定一个命名存储库作为此程序集的存储库。

    程序集的日志存储库由其 RepositoryAttribute 定义,但是这可以被在目标程序集之前加载的程序集覆盖。

    程序集可以通过指定具有目标存储库名称的此属性来为另一个程序集的存储库创建别名。

    此属性可以根据需要使用多次来为所有必需的存储库创建别名。

  • RepositoryAttribute

    指定程序集的日志存储库。

    程序集映射到日志存储库。此属性控制存储库的配置。 Name 属性指定此程序集的存储库名称。 RepositoryType 属性指定要为程序集创建的存储库对象的类型。如果未指定此属性且未指定 Name,则该程序集将成为默认共享日志存储库的一部分。

    此属性每个程序集只能使用一次。