using System; using System.Text.Json.Serialization; namespace CoreAgent.Domain.Models.Protocol; /// /// RAN层日志实体类 /// 该实体用于记录RAN(无线接入网)相关的各层日志信息 /// 遵循DDD(领域驱动设计)原则,作为领域模型的一部分 /// public class RanLayerLog { /// /// GTP-U协议层日志级别 /// public string GTPU { get; set; } /// /// LPPa协议层日志级别 /// public string LPPa { get; set; } /// /// M2AP协议层日志级别 /// public string M2AP { get; set; } /// /// MAC协议层日志级别 /// public string MAC { get; set; } /// /// NAS协议层日志级别 /// public string NAS { get; set; } /// /// NGAP协议层日志级别 /// public string NGAP { get; set; } /// /// NRPPa协议层日志级别 /// public string NRPPa { get; set; } /// /// PDCP协议层日志级别 /// public string PDCP { get; set; } /// /// PHY协议层日志级别 /// public string PHY { get; set; } /// /// RLC协议层日志级别 /// public string RLC { get; set; } /// /// RRC协议层日志级别 /// public string RRC { get; set; } /// /// S1AP协议层日志级别 /// public string S1AP { get; set; } /// /// TRX协议层日志级别 /// public string TRX { get; set; } /// /// X2AP协议层日志级别 /// public string X2AP { get; set; } /// /// XnAP协议层日志级别 /// public string XnAP { get; set; } /// /// PROD协议层日志级别 /// [JsonIgnore] public string PROD { get; set; } /// /// 初始化RAN层日志级别 /// /// 是否为非独立组网模式(NSA模式) public void InitializeLogLevels(bool isNonStandaloneMode = false) { GTPU = LogLevel.Warn.ToString().ToLower(); LPPa = LogLevel.Warn.ToString().ToLower(); M2AP = LogLevel.Warn.ToString().ToLower(); MAC = LogLevel.Warn.ToString().ToLower(); NAS = LogLevel.Warn.ToString().ToLower(); NGAP = LogLevel.Warn.ToString().ToLower(); NRPPa = LogLevel.Warn.ToString().ToLower(); PDCP = LogLevel.Warn.ToString().ToLower(); PHY = LogLevel.Warn.ToString().ToLower(); RLC = LogLevel.Warn.ToString().ToLower(); RRC = LogLevel.Warn.ToString().ToLower(); S1AP = LogLevel.Warn.ToString().ToLower(); TRX = LogLevel.Warn.ToString().ToLower(); X2AP = LogLevel.Warn.ToString().ToLower(); XnAP = LogLevel.Warn.ToString().ToLower(); PROD = LogLevel.Warn.ToString().ToLower(); } /// /// 更新指定层的日志级别 /// /// 层名称 /// 日志级别 /// 是否更新成功 public bool UpdateLogLevel(string layerName, LogLevel logLevel) { if (string.IsNullOrEmpty(layerName)) return false; var property = GetType().GetProperty(layerName); if (property == null) return false; property.SetValue(this, logLevel.ToString().ToLower()); return true; } }