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.

80 lines
2.1 KiB

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