繁体   English   中英

log4net 彩色控制台 Appender 问题

[英]log4net Colored Console Appender issue

我正在使用 log4net 库在我的控制台上显示日志,当我在调试模式下运行应用程序时,我能够在控制台上显示日志,但是当我通过 cmd 运行控制台时,它没有在控制台上显示日志。

XML 配置:

<?xml version="1.0" encoding="utf-8"?>
<log4net>
<appender name="RollingFile" type="AutoLogger.FileAppender">
<file type="log4net.Util.PatternString" value="%property{LogFileName}" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<maximumFileSize value="200MB" />
<maxSizeRollBackups value="-1" />
<datePattern value="dd.MM.yyyy'.log'" />
<layout type="AutoLogger.TestcasePatternLayout, AutoLogger">
  <conversionPattern value="%level %date %testcase %message (%logger)%newline" />
  <param name="Header" value="[TEST START]&#xD;&#xA;" />
  <param name="Footer" value="[TEST END]&#xD;&#xA;" />
</layout>
</appender>

<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
  <level value="ERROR" />
  <foreColor value="White" />
  <backColor value="Red" />
</mapping>
<mapping>
  <level value="WARN" />
  <foreColor value="Yellow" />
</mapping>
<mapping>
  <level value="FATAL" />
  <foreColor value="White" />
  <backColor value="Red, HighIntensity" />
</mapping>
<layout type="AutoLogger.TestcasePatternLayout, AutoLogger">
  <conversionPattern value="%level %testcase %message %newline" />
</layout>
</appender>
<root>
<priority value="ALL" />
<appender-ref ref="ColoredConsoleAppender" />
<appender-ref ref="RollingFile" />
</root>
</log4net>

我怀疑我认识这个...

您发布了一些 log4net 的 XML 配置,但有一个重要的信息您没有提及。 如果您的目标是 dotnet 核心,我可以帮助您。 如果您仍然以 dontnet 框架为目标,那么我只能建议您返回并仔细检查所有在线教程。 我多年来一直在 dontnet 框架下使用 log4net 彩色控制台附加程序,没有失败,它工作得很好。

关于主要事件:如果您正在使用 dotnet 核心应用程序,则所有其他 log4net 附加程序都可以正常工作,无需对已发布的文档和教程进行任何更改。 但是,出于某种原因,需要更改彩色控制台附加程序。 我在互联网上进行了大量挖掘后挖掘了这个:

  <appender name="ColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
    <threshold value="ALL" />
    <mapping>
      <level value="FATAL" />
      <foreColor value="Magenta" />
    </mapping>
    <mapping>
      <level value="ERROR" />
      <foreColor value="Red" />
    </mapping>
    <mapping>
      <level value="WARN" />
      <foreColor value="Yellow" />
    </mapping>
    <mapping>
      <level value="INFO" />
      <foreColor value="Green" />
    </mapping>
    <mapping>
      <level value="DEBUG" />
      <foreColor value="Cyan" />
    </mapping>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
  </appender>

  <root>
    <level value="ALL" />
    <appender-ref ref="ColoredConsoleAppender" />
  </root>

只需像添加任何其他 appender 一样将其添加到您的配置文件中,它就可以正常工作。

加分! 想要定义自己的颜色集? 您不能使用来自原始彩色控制台附加程序的颜色名称,它会损坏。 以下是对 ManagedColoredConsoleAppender 合法的枚举值的链接:

https://docs.microsoft.com/en-us/dotnet/api/system.consolecolor?redirectedfrom=MSDN&view=net-5.0

愿您所有记录的事件都是绿色的!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM