You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Log4Net控制台应用按日志级别生成控制台颜色失败并崩溃

解决Log4Net ColoredConsoleAppender导致应用崩溃的问题

你遇到的崩溃问题大概率是配置文件里的语法错误导致的,我帮你找出了两处关键问题:

1. 不完整的颜色配置

看你INFO级别的foreColor值:

<foreColor value="Green, HighIntens..."/>

这里的HighIntens...是截断的写法,正确的应该是HighIntensity。Log4Net在解析这个不完整的颜色修饰符时会抛出异常,直接导致应用启动崩溃。

2. 配置规范检查

除了截断问题,还要确保所有颜色相关的配置都符合Log4Net的要求:

  • 颜色值必须是Log4Net支持的合法选项,比如Black、Blue、Green、Orange、Red等
  • 修饰符(HighIntensity、NoBold)要和颜色用逗号分隔,格式要完整

修正后的完整配置

把你的配置修改成下面这样,应该就能解决崩溃问题:

<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>
  <!-- 必须配置root logger关联控制台Appender才能生效 -->
  <root>
    <level value="DEBUG"/>
    <appender-ref ref="ConsoleAppender"/>
  </root> 
</log4net>

额外排查技巧

如果还是有问题,可以开启Log4Net的内部调试来获取更详细的错误信息:

  1. 在你的app.config的<appSettings>节点里添加:
<add key="log4net.Internal.Debug" value="true"/>
  1. 启动应用后,控制台会输出Log4Net的内部调试日志,从中可以定位具体的解析错误点。

内容的提问来源于stack exchange,提问作者user979033

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:05:01