using System;
using System.Text.Json.Serialization;
namespace CoreAgent.Domain.Models.Protocol;
///
/// IMS层日志实体类
/// 该实体用于记录IMS(IP多媒体子系统)相关的各层日志信息
/// 遵循DDD(领域驱动设计)原则,作为领域模型的一部分
///
public class ImsLayerLog
{
///
/// CX协议层日志级别
///
public string CX { get; set; }
///
/// IMS协议层日志级别
///
public string IMS { get; set; }
///
/// IPSEC协议层日志级别
///
public string IPSEC { get; set; }
///
/// MEDIA协议层日志级别
///
public string MEDIA { get; set; }
///
/// MMS协议层日志级别
///
public string MMS { get; set; }
///
/// RX协议层日志级别
///
public string RX { get; set; }
///
/// SIP协议层日志级别
///
public string SIP { get; set; }
///
/// 初始化IMS层日志级别
///
public void InitializeLogLevels()
{
CX = LogLevel.Warn.ToString().ToLower();
IMS = LogLevel.Warn.ToString().ToLower();
IPSEC = LogLevel.Warn.ToString().ToLower();
MEDIA = LogLevel.Warn.ToString().ToLower();
MMS = LogLevel.Warn.ToString().ToLower();
RX = LogLevel.Warn.ToString().ToLower();
SIP = LogLevel.Debug.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;
}
}