【问题标题】:c#: Log4Net console application failed to create console color according log level and crashc#: Log4Net 控制台应用程序未能根据日志级别创建控制台颜色并崩溃
【发布时间】:2018-03-25 10:44:49
【问题描述】:

这是我的Log4Netapp.config

<log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%date] [%level] [%logger/%method] → %message%newline%exception"/>
      </layout>
      <mapping>
        <level value="DEBUG" />
        <foreColor value="Orange, HighIntensity" />
      </mapping>
      <mapping>
        <level value="INFO" />
        <foreColor value="Green, HighIntensity" />
      </mapping>
      <mapping>
        <level value="WARN" />
        <foreColor value="Yellow, HighIntensity" />
      </mapping>
      <mapping>
        <level value="ERROR" />
        <foreColor value="Red, HighIntensity" />
      </mapping>
    </appender>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
      <file value="c:\logs\log.txt"/>
      <rollingStyle value="Date" />
      <appendToFile value="true" />
      <rollingStyle value="Size"/>
      <maximumFileSize value="10MB"/>
      <maxSizeRollBackups value="5"/>
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <datePattern value="yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%date] [%level] - %message%newline%exception"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="RollingFile" />
    </root>
  </log4net>

除了我无法创建任何我想要的Console color 之外,一切都很好。

例如:

  <mapping>
    <level value="DEBUG" />
    <foreColor value="Orange, HighIntensity" />
  </mapping>

当我尝试定义这个Orange(甚至Gray)颜色时,我收到了这个错误:

log4net:ERROR 无法创建类型的 Appender [ConsoleAppender] [log4net.Appender.ColoredConsoleAppender]。报告的错误如下。 System.ArgumentException:请求的值“橙色,高强度”是 未找到。在 System.Enum.EnumResult.SetFailure(ParseFailureKind 失败,字符串 failureMessageID,对象 failureMessageFormatArgument) 在 System.Enum.TryParseEnum(类型 enumType,字符串值,布尔值 在 System.Enum.Parse(Type enumType,字符串值,布尔忽略大小写)在 log4net.Util.OptionConverter.ConvertStringTo(Type target, String txt) 在 log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ConvertStringTo(类型 类型,字符串值)在 log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement 元素,对象目标)在 log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(XmlElement 元素,类型 defaultTargetType,类型 typeConstraint) 在 log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement 元素,对象目标)在 log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement) log4net:ERROR Appender named [ConsoleAppender] not 找到了。

但如果我想定义Blue,没有任何errors 就可以正常工作。

【问题讨论】:

    标签: c# console-application log4net


    【解决方案1】:

    根据文档,橙色不是可以使用的有效颜色:https://logging.apache.org/log4net/log4net-1.2.12/release/sdk/log4net.Appender.ColoredConsoleAppender.html

    摘自链接: Level 是标准的 log4net 日志级别,ForeColor 和 BackColor 可以是以下值的任意组合:

    蓝色 - 绿色的 - 红色的 - 白色的 - 黄色 - 紫色的 - 青色 - 高强度

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2013-11-05
      • 2017-07-28
      • 2023-04-01
      相关资源
      最近更新 更多