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.

136 lines
3.6 KiB

using System;
using System.Text.Json.Serialization;
namespace CoreAgent.Domain.Models.Protocol;
/// <summary>
/// RAN层日志实体类
/// 该实体用于记录RAN(无线接入网)相关的各层日志信息
/// 遵循DDD(领域驱动设计)原则,作为领域模型的一部分
/// </summary>
public class RanLayerLog
{
/// <summary>
/// GTP-U协议层日志级别
/// </summary>
public string GTPU { get; set; }
/// <summary>
/// LPPa协议层日志级别
/// </summary>
public string LPPa { get; set; }
/// <summary>
/// M2AP协议层日志级别
/// </summary>
public string M2AP { get; set; }
/// <summary>
/// MAC协议层日志级别
/// </summary>
public string MAC { get; set; }
/// <summary>
/// NAS协议层日志级别
/// </summary>
public string NAS { get; set; }
/// <summary>
/// NGAP协议层日志级别
/// </summary>
public string NGAP { get; set; }
/// <summary>
/// NRPPa协议层日志级别
/// </summary>
public string NRPPa { get; set; }
/// <summary>
/// PDCP协议层日志级别
/// </summary>
public string PDCP { get; set; }
/// <summary>
/// PHY协议层日志级别
/// </summary>
public string PHY { get; set; }
/// <summary>
/// RLC协议层日志级别
/// </summary>
public string RLC { get; set; }
/// <summary>
/// RRC协议层日志级别
/// </summary>
public string RRC { get; set; }
/// <summary>
/// S1AP协议层日志级别
/// </summary>
public string S1AP { get; set; }
/// <summary>
/// TRX协议层日志级别
/// </summary>
public string TRX { get; set; }
/// <summary>
/// X2AP协议层日志级别
/// </summary>
public string X2AP { get; set; }
/// <summary>
/// XnAP协议层日志级别
/// </summary>
public string XnAP { get; set; }
/// <summary>
/// PROD协议层日志级别
/// </summary>
[JsonIgnore]
public string PROD { get; set; }
/// <summary>
/// 初始化RAN层日志级别
/// </summary>
/// <param name="isNonStandaloneMode">是否为非独立组网模式(NSA模式)</param>
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();
}
/// <summary>
/// 更新指定层的日志级别
/// </summary>
/// <param name="layerName">层名称</param>
/// <param name="logLevel">日志级别</param>
/// <returns>是否更新成功</returns>
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;
}
}