Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Log4Net LogManager获取appender_C#_.net_Logging_Config_Log4net - Fatal编程技术网

C# 从Log4Net LogManager获取appender

C# 从Log4Net LogManager获取appender,c#,.net,logging,config,log4net,C#,.net,Logging,Config,Log4net,我试图通过log4net获取带有log的文件名,但无法获取我的appender。这是我的配置: <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="name.log"/> <appendToFile value="false"/> <maxim

我试图通过log4net获取带有log的文件名,但无法获取我的appender。这是我的配置:

<log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="name.log"/>
      <appendToFile value="false"/>
      <maximumFileSize value="10MB"/>
      <maxSizeRollBackups value="0"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level %thread %logger - %message%newline"/>
      </layout>
    </appender>
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <mapping>
        <level value="ERROR"/>
        <foreColor value="Red, HighIntensity"/>
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level %thread %logger - %message%newline"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="RollingFileAppender"/>
      <appender-ref ref="ColoredConsoleAppender"/>
    </root>
</log4net>
但它给了我0。
日志记录可以完美地工作,因此config可以用于日志记录。您是否知道如何在没有appender的情况下从config获取appender或文件名
“name.log”
?谢谢。

您是否可以在调用配置之前获取Appender

使用您提供的配置:

int count;
count = LogManager.GetRepository().GetAppenders().Length; // 0
XmlConfigurator.Configure();
count = LogManager.GetRepository().GetAppenders().Length; // 2
int count;
count = LogManager.GetRepository().GetAppenders().Length; // 0
XmlConfigurator.Configure();
count = LogManager.GetRepository().GetAppenders().Length; // 2