DNN学习笔记-代码学习:LogInfo
using System;
using System.Text;
using System.Xml.Serialization;
namespace WebApplication1
{
/// <summary>
/// 存储某Log所有Log信息的类,返回需要字符串。
/// </summary>
[XmlRoot("log")]
public class LogInfo
{
private string _LogGUID;
private string _LogFileID;
private string _LogTypeKey;
private int _LogUserID;
private string _LogUserName;
private int _LogPortalID;
private string _LogPortalName;
private DateTime _LogCreateDate;
private long _LogCreateDateNum;
private bool _BypassBuffering;
private string _LogServerName;
/// <summary>
/// _LogProperties对象用来存储多个LogDetailInfo对象,这是扩展LogInfo信息的一种方法。
/// </summary>
private LogProperties _LogProperties;
public LogInfo()
{
_LogGUID = Guid.NewGuid().ToString();
_BypassBuffering = false;
_LogProperties = new LogProperties();
_LogPortalID = -1;
_LogPortalName = "";
_LogUserID = -1;
_LogUserName = "";
}
[XmlAttribute("LogGUID")]
public string LogGUID
{
get
{
return _LogGUID;
}
set
{
_LogGUID = value;
}
}
[XmlAttribute("LogFileID")]
public string LogFileID
{
get
{
return _LogFileID;
}
set
{
_LogFileID = value;
}
}
[XmlAttribute("LogTypeKey")]
public string LogTypeKey
{
get
{
return _LogTypeKey;
}
set
{
_LogTypeKey = value;
}
}
[XmlAttribute("LogUserID")]
public int LogUserID
{
get
{
return _LogUserID;
}
set
{
_LogUserID = value;
}
}
[XmlAttribute("LogUserName")]
public string LogUserName
{
get
{
return _LogUserName;
}
set
{
_LogUserName = value;
}
}
[XmlAttribute("LogPortalID")]
public int LogPortalID
{
get
{
return _LogPortalID;
}
set
{
_LogPortalID = value;
}
}
[XmlAttribute("LogPortalName")]
public string LogPortalName
{
get
{
return _LogPortalName;
}
set
{
_LogPortalName = value;
}
}
[XmlAttribute("LogCreateDate")]
public DateTime LogCreateDate
{
get
{
return _LogCreateDate;
}
set
{
_LogCreateDate = value;
}
}
[XmlAttribute("LogCreateDateNum")]
public long LogCreateDateNum
{
get
{
return _LogCreateDateNum;
}
set
{
_LogCreateDateNum = value;
}
}
[XmlArray("properties"), XmlArrayItem(ElementName = "property", Type= null)]
public LogProperties LogProperties
{
get
{
return _LogProperties;
}
set
{
_LogProperties = value;
}
}
[XmlIgnore()]
public bool BypassBuffering
{
get
{
return _BypassBuffering;
}
set
{
_BypassBuffering = value;
}
}
[XmlAttribute("LogServerName")]
public string LogServerName
{
get
{
return _LogServerName;
}
set
{
_LogServerName = value;
}
}
/// <summary>
/// 将一个名称、值添加到本对象中(通过添加_LogProperties中的LogDetailInfo对象)。
/// </summary>
/// <param name="PropertyName"></param>
/// <param name="PropertyValue"></param>
public void AddProperty(string PropertyName, string PropertyValue)
{
try
{
if (PropertyName.Length > 50)
{
PropertyName = PropertyName.Substring(0, 50);
}
if (PropertyValue.Length > 500)
{
PropertyValue = "(TRUNCATED TO 500 CHARS): " + PropertyValue.Substring(0, 500);
}
LogDetailInfo objLogDetailInfo = new LogDetailInfo();
objLogDetailInfo.PropertyName = PropertyName;
objLogDetailInfo.PropertyValue = PropertyValue;
_LogProperties.Add(objLogDetailInfo);
}
catch(Exception ex)
{
// ProcessPageLoadException(exc);
}
}
/// <summary>
/// 判断某属性是不适Log的主要属性。
/// </summary>
/// <param name="PropName"></param>
/// <returns></returns>
public static bool IsSystemType(string PropName)
{
switch (PropName)
{
case "LogGUID":
case "LogFileID":
case "LogTypeKey":
case "LogCreateDate":
case "LogCreateDateNum":
case "LogPortalID":
case "LogPortalName":
case "LogUserID":
case "LogUserName":
case "BypassBuffering":
case "LogServerName":
return true;
default:
return false;
}
}
/// <summary>
/// 本对象返回的字符串。
/// </summary>
/// <returns></returns>
public override string ToString()
{
StringBuilder str = new StringBuilder();
str.Append("<b>LogGUID:</b> " + LogGUID + "<br>");
str.Append("<b>LogType:</b> " + LogTypeKey + "<br>");
str.Append("<b>UserID:</b> " + LogUserID.ToString() + "<br>");
str.Append("<b>Username:</b> " + LogUserName + "<br>");
str.Append("<b>PortalID:</b> " + LogPortalID.ToString() + "<br>");
str.Append("<b>PortalName:</b> " + LogPortalName + "<br>");
str.Append("<b>CreateDate:</b> " + LogCreateDate.ToString() + "<br>");
str.Append("<b>ServerName:</b> " + LogServerName + "<br>");
str.Append(LogProperties.ToString());
return str.ToString();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构