我正在使用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]
" />
<param name="Footer" value="[TEST END]
" />
</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>
答案 0 :(得分:0)
我怀疑我认识这个...
您发布了一些 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
愿你所有记录的事件都是绿色的!