gpt4 book ai didi

c# - 从字符串创建强类型 log4net 级别

转载 作者:可可西里 更新时间:2023-11-01 03:08:45 26 4
gpt4 key购买 nike

我注意到了 log4net有一个强类型 Level class .有谁知道是否有办法通过解析日志级别字符串来创建 Level 对象?

例如:

我想将错误级别字符串“ERROR”解析为等效的 log4net.Core.Level.Error 对象,对于其他日志记录级别也是如此。

我编写了自己的(天真的)方法来执行此操作(见下文),但我希望 log4net 内部有一些东西可以为我执行此操作。

谢谢!

    public static Level ParseLevel(string level)
{
switch (level.ToUpperInvariant())
{
case "ALERT":
return log4net.Core.Level.Alert;
case "ALL":
return log4net.Core.Level.All;
case "CRITICAL":
return log4net.Core.Level.Critical;
case "DEBUG":
return log4net.Core.Level.Debug;
case "EMERGENCY":
return log4net.Core.Level.Emergency;
case "ERROR":
return log4net.Core.Level.Error;
case "FATAL":
return log4net.Core.Level.Fatal;
case "FINE":
return log4net.Core.Level.Fine;
case "FINER":
return log4net.Core.Level.Finer;
case "FINEST":
return log4net.Core.Level.Finest;
case "INFO":
return log4net.Core.Level.Info;
case "NOTICE":
return log4net.Core.Level.Notice;
case "OFF":
return log4net.Core.Level.Off;
case "SEVERE":
return log4net.Core.Level.Severe;
case "TRACE":
return log4net.Core.Level.Trace;
case "VERBOSE":
return log4net.Core.Level.Verbose;
case "WARN":
return log4net.Core.Level.Warn;
default:
throw new Exception("Invalid logging level specified");
}
}

编辑:根据 Wily 博士学徒的建议,这是我最终使用 LevelMap 得出的结果:

    using System;
using System.Linq;

public static Level ParseLevel(string level)
{
var loggerRepository = LoggerManager.GetAllRepositories().FirstOrDefault();

if (loggerRepository == null)
{
throw new Exception("No logging repositories defined");
}

var stronglyTypedLevel = loggerRepository.LevelMap[level];

if (stronglyTypedLevel == null)
{
throw new Exception("Invalid logging level specified");
}

return stronglyTypedLevel;
}

最佳答案

看起来这就是 LevelMap 类的目的。

https://logging.apache.org/log4net/log4net-1.2.11/release/sdk/log4net.Core.LevelMap.html

编辑:您可以从 the LevelMap property 得到一个 LevelMap ILoggerRepository 的访问权限,如果您有权访问的话。

关于c# - 从字符串创建强类型 log4net 级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com