【问题标题】:log4net colored console is not workinglog4net 彩色控制台不工作
【发布时间】:2016-06-07 12:59:56
【问题描述】:

我将 log4net 用于两个不同的日志文件和彩色控制台,文件工作正常但控制台总是空的。

在我的 app.config 中

  <log4net>
    <root>
      <priority value="ALL" />
      <appender-ref ref="ConsoleOutAppender" />
      <appender-ref ref="PortalLoggerAppender" />
      <appender-ref ref="ApplicationLoggerAppender" />
    </root>

    <appender name="ConsoleOutAppender" type="log4net.Appender.ColoredConsoleAppender">
 <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="ApplicationLogger" />
      </filter>
      <mapping>
        <level value="ERROR" />
        <foreColor value="Red, HighIntensity" />
      </mapping>
      <mapping>
        <level value="WARN" />
        <foreColor value="Yellow, HighIntensity" />
      </mapping>
      <mapping>
        <level value="INFO" />
        <foreColor value="Cyan" />
      </mapping>
      <mapping>
        <level value="DEBUG" />
        <foreColor value="Green" />
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{dd/MM HH:mm:ss} [%level] %newline%message%newline" />
      </layout>
    </appender>

    <appender name="PortalLoggerAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="Results/PortalLog_%property{DateTime}_app.log" />
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="PortalLogger" />
      </filter>
      <encoding value="utf-8" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <maxSizeRollBackups value="-1" />
      <maximumFileSize value="20MB" />
      <countDirection value="1" />
      <datePattern value="yyyyMMdd" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{dd/MM HH:mm:ss} [%level] %newline%message%newline" />
      </layout>
    </appender>

    <appender name="ApplicationLoggerAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="Results/ApplicationLog_%property{DateTime}_app.log" />
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="ApplicationLogger" />
      </filter>
      <encoding value="utf-8" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <maxSizeRollBackups value="-1" />
      <maximumFileSize value="20MB" />
      <countDirection value="1" />
      <datePattern value="yyyyMMdd" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{dd/MM HH:mm:ss} [%level] %newline%message%newline" />
      </layout>
    </appender>

    <logger name="PortalLogger" additivity="false">
      <level value="ALL"/>
      <appender-ref ref="PortalLoggerAppender"/>
    </logger>

    <logger name="ApplicationLogger" additivity="false">
      <level value="ALL"/>
      <appender-ref ref="ApplicationLoggerAppender"/>
    </logger>


    </log4net>

知道为什么 log4net 没有打印到控制台吗? 我希望应用程序记录器也将写入控制台。 提前谢谢你。

【问题讨论】:

  • 你能在代码中显示记录器是如何初始化的吗?

标签: c# log4net


【解决方案1】:

好的,我知道了,我刚刚将控制台附加程序添加到应用程序记录器中:)

 <logger name="ApplicationLogger" additivity="false">
      <level value="ALL"/>
      <appender-ref ref="ApplicationLoggerAppender"/>
      <appender-ref ref="ConsoleOutAppender"/>
    </logger>

【讨论】:

    【解决方案2】:

    您已将additivity 专门设置为falseas per the docs 表示:

    未使用在此记录器的祖先中找到的附加程序

    意味着您在顶部的root 中配置的那些将被忽略。删除 additivity 或将其设置为 true(其默认值),或者也将您的控制台附加程序显式添加到此记录器。

    【讨论】:

      【解决方案3】:

      要使用 log4net 彩色控制台,请使用以下步骤:

      1. 安装以下 nuget:

      安装包 Log4Net_Logging -Version 1.1.0

      1. 使用下面的 log4net.config
            <appender name="Console" type="log4net.Appender.ManagedColoredConsoleAppender">
              <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date %-5level: %message%newline" />
              </layout>
              <mapping>
                <level value="FATAL" />
                <foreColor value="White" />
                <backColor value="Red" />
              </mapping>
              <mapping>
                <level value="ERROR" />
                <foreColor value="Red" />
              </mapping>
              <mapping>
                <level value="WARN" />
                <foreColor value="Yellow" />
              </mapping>
              <mapping>
                <level value="INFO" />
                <foreColor value="Gray" />
                <backColor value="Black" />
              </mapping>
              <mapping>
                <level value="DEBUG" />
                <foreColor value="DarkBlue" />
                <backColor value="Gray" />
              </mapping>
            </appender>
      
            <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
              <file value="Log.txt" />
              <appendToFile value="false" />
              <rollingStyle value="Size" />
              <maxSizeRollBackups value="10" />
              <maximumFileSize value="50MB" />
              <staticLogFileName value="true" />
              <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date %-5level[%logger]: %message%newline" />
              </layout>
            </appender>
      
            <root>
              <level value="INFO" />
              <appender-ref ref="Console" />
              <appender-ref ref="RollingFileAppender" />
            </root>
          </log4net>
      
      1. 在控制器中设置
              {
                  Log.SetUp(Assembly.GetEntryAssembly(), "log4net.config");
              }
      
      1. 开始记录:
       [HttpGet]
              public ActionResult<IEnumerable<string>> Get()
              {
      
      
                  Log.Info(this, "This is Info logging");
                  Log.Debug(this, "This is Debug logging");
                  Log.Error(this, "This is Error logging");
                  Log.War(this, "This is warning");
      
      
                  return new string[] { "value1", "value2" };
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-26
        • 2016-09-15
        • 2020-07-13
        • 1970-01-01
        • 2020-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多