簡體   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