在使用/父项目中指定要在类库中使用的log4net配置

Gon*_*ioz 3 c# dll log4net

我已经在类库项目中实现了log4net,如下所示:

private static readonly ILog _logger = 
        LogManager.GetLogger(typeof(SomeClass));
Run Code Online (Sandbox Code Playgroud)

这就是我所做的。没有配置文件或任何东西。

然后在引用该类库的项目中,我在app.config中包含一个log4net config部分:

<log4net>
<root>
  <level value="ALL" />
  <appender-ref ref="FileAppender"/>
</root>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
  <file value="C:/abcd.log" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
</appender>
Run Code Online (Sandbox Code Playgroud)

现在,可以这么说,类库项目中的log4net记录器无法从其“父”项目中读取配置。

我确定我需要更多配置,但是我不知道从哪里开始。关于stackoverflow等也有类似的问题,但是我相信他们并没有真正给出如何执行此操作的答案。

非常感谢您的帮助。

谢谢。

小智 6

您必须告诉log4net在哪里可以找到日志记录配置。如何执行它在log4net手册中进行了描述。

我更喜欢将其添加[assembly: log4net.Config.XmlConfigurator(Watch=true)]到应用程序的AssemblyInfo.cs文件中。