c#: Log4Net 控制台应用程序无法根据日志级别创建控制台颜色并崩溃
c#: Log4Net console application failed to create console color according log level and crash
所以这是我的 Log4Net
app.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 Could not create Appender [ConsoleAppender] of type
[log4net.Appender.ColoredConsoleAppender]. Reported error follows.
System.ArgumentException: Requested value 'Orange, HighIntensity' was
not found. at System.Enum.EnumResult.SetFailure(ParseFailureKind
failure, String failureMessageID, Object failureMessageFormatArgument)
at System.Enum.TryParseEnum(Type enumType, String value, Boolean
ignoreCase, EnumResult& parseResult) at System.Enum.Parse(Type
enumType, String value, Boolean ignoreCase) at
log4net.Util.OptionConverter.ConvertStringTo(Type target, String txt)
at
log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ConvertStringTo(Type
type, String value) at
log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement
element, Object target) at
log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(XmlElement
element, Type defaultTargetType, Type typeConstraint) at
log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement
element, Object target) at
log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement
appenderElement) log4net:ERROR Appender named [ConsoleAppender] not
found.
但是如果我想定义 Blue
这没有任何 errors
.
工作正常
根据文档,橙色不是可以使用的有效颜色:https://logging.apache.org/log4net/log4net-1.2.12/release/sdk/log4net.Appender.ColoredConsoleAppender.html
摘自link:
Level 是标准的 log4net 日志级别,ForeColor 和 BackColor 可以是以下值的任意组合:
蓝色-
绿色的 -
红色的 -
白色的 -
黄色的 -
紫色的 -
青色 -
高强度
所以这是我的 Log4Net
app.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 Could not create Appender [ConsoleAppender] of type [log4net.Appender.ColoredConsoleAppender]. Reported error follows. System.ArgumentException: Requested value 'Orange, HighIntensity' was not found. at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument) at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult) at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase) at log4net.Util.OptionConverter.ConvertStringTo(Type target, String txt) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ConvertStringTo(Type type, String value) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement element, Object target) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(XmlElement element, Type defaultTargetType, Type typeConstraint) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement element, Object target) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement) log4net:ERROR Appender named [ConsoleAppender] not found.
但是如果我想定义 Blue
这没有任何 errors
.
根据文档,橙色不是可以使用的有效颜色:https://logging.apache.org/log4net/log4net-1.2.12/release/sdk/log4net.Appender.ColoredConsoleAppender.html
摘自link: Level 是标准的 log4net 日志级别,ForeColor 和 BackColor 可以是以下值的任意组合:
蓝色- 绿色的 - 红色的 - 白色的 - 黄色的 - 紫色的 - 青色 - 高强度