You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
5.4 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CoreAgent.ProtocolClient.Models
{
/// <summary>
/// 协议层日志配置工厂
/// 提供预定义的日志层配置,用于不同协议层的日志记录控制
/// 支持LTE协议栈各层的日志级别、大小限制和过滤规则配置
/// </summary>
public static class ProtocolLayerConfigFactory
{
/// <summary>
/// 获取默认的LTE协议层日志配置
/// 包含PHY、MAC、RLC、PDCP、RRC、NAS等各层的预定义配置
/// </summary>
/// <returns>协议层名称到配置的映射字典</returns>
public static Dictionary<string, LogLayerConfig> GetDefaultCustomLayerConfigs()
{
// 直接返回静态配置,避免不必要的嵌套和动态解析
return new Dictionary<string, LogLayerConfig>
{
["PHY"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = true, Filter = "info" },
["MAC"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = true, Filter = "info" },
["RLC"] = new LogLayerConfig { Level = "info", MaxSize = 1000, Payload = false, Filter = "info" },
["PDCP"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = false, Filter = "warn" },
["RRC"] = new LogLayerConfig { Level = "debug", MaxSize = 1000, Payload = true, Filter = "debug" },
["NAS"] = new LogLayerConfig { Level = "debug", MaxSize = 1000, Payload = true, Filter = "debug" },
["S1AP"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = false, Filter = "info" },
["NGAP"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = false, Filter = "info" },
["GTPU"] = new LogLayerConfig { Level = "info", MaxSize = 1000, Payload = false, Filter = "info" },
["X2AP"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = false, Filter = "info" },
["XnAP"] = new LogLayerConfig { Level = "info", MaxSize = 1000, Payload = false, Filter = "info" },
["M2AP"] = new LogLayerConfig { Level = "info", MaxSize = 1000, Payload = false, Filter = "info" }
};
}
/// <summary>
/// 获取IMS协议层的日志配置
/// 包含IMS、CX、RX、SIP、MEDIA、MMS等IMS相关协议的配置
/// </summary>
/// <returns>IMS协议层名称到配置的映射字典</returns>
public static Dictionary<string, LogLayerConfig> GetIMSCustomLayerConfigs()
{
// 直接返回静态配置,避免不必要的嵌套和动态解析
return new Dictionary<string, LogLayerConfig>
{
["IMS"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = true, Filter = "debug" },
["CX"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = true, Filter = "debug" },
["RX"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = false, Filter = "debug" },
["SIP"] = new LogLayerConfig { Level = "debug", MaxSize = 1000, Payload = false, Filter = "debug" },
["MEDIA"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = true, Filter = "debug" },
["MMS"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = true, Filter = "debug" },
};
}
/// <summary>
/// 获取RAN协议层的日志配置
/// 包含PHY、MAC、RLC、PDCP、RRC、NAS等RAN相关协议的配置
/// </summary>
/// <returns>RAN协议层名称到配置的映射字典</returns>
public static Dictionary<string, LogLayerConfig> GetRANCustomLayerConfigs()
{
// 直接返回静态配置,避免不必要的嵌套和动态解析
return new Dictionary<string, LogLayerConfig>
{
["PHY"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = true, Filter = "info" },
["MAC"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = true, Filter = "info" },
["RLC"] = new LogLayerConfig { Level = "info", MaxSize = 1000, Payload = false, Filter = "info" },
["PDCP"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = false, Filter = "warn" },
["RRC"] = new LogLayerConfig { Level = "debug", MaxSize = 1000, Payload = true, Filter = "debug" },
["NAS"] = new LogLayerConfig { Level = "debug", MaxSize = 1000, Payload = true, Filter = "debug" },
["S1AP"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = false, Filter = "info" },
["NGAP"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = false, Filter = "info" },
["GTPU"] = new LogLayerConfig { Level = "info", MaxSize = 1000, Payload = false, Filter = "info" },
["X2AP"] = new LogLayerConfig { Level = "warn", MaxSize = 1000, Payload = false, Filter = "info" },
["XnAP"] = new LogLayerConfig { Level = "info", MaxSize = 1000, Payload = false, Filter = "info" },
["M2AP"] = new LogLayerConfig { Level = "info", MaxSize = 1000, Payload = false, Filter = "info" }
};
}
}
}