DNN学习笔记:DNN中的Log(日志)
DNN中,处理Log的类有很多。
一般,捕捉到一个Exception Log的时候,
就会调用ExceptionLogController类,来把该信息封装成一个LogInfo对象,
然后,把这个LogInfo对象存放到全局唯一的对象LoggingProvider中,
具体存放到LoggingProvider对象的什么成员中呢,是存放到LoggingProvider对象的一个LogInfoArray类型的成员中(LogInfoArray本身就是一个LogInfo的集合,而LoggingProvider的作用就是存储这个集合,并提供相关的操作)。
然后,一般通过LogController(ExceptionLogController的父类)来操作LoggingProvider对象,这些操作包括:向LoggingProvider中添加、移出LogInfo对象,取得LogInfo集合等。
整个过程就是:用ExceptionLogController封装Log,并存放到LoggingProvider中,并通过ExceptionLogController来实现对LoggingProvider的操作。
可能Log的信息,多种多样,LogInfo中的单个属性存储不了这么多属性,于是,LogInfo中就有了一个LogProperties类型的成员。该成员是一个集合,存储的是LogDetailInfo类型的对象。LogDetailInfo类型的对象可以理解成一个键值对,即有名称name和值value的对象。
所以,LogInfo是这样组成的:
LogInfo本身存储一些常见的Log属性,例如用户名,Log创建日期等。
LogInfo还有一个集合成员LogProperties,存储的是一些不常用的属性,例如模块编号。这些不常用的属性都封装成LogDetailInfo对象,以利于扩展。
最后,LogInfoArray是一个存储LogInfo的容器,可以随便装入LogInfo对象。
一般,捕捉到一个Exception Log的时候,
就会调用ExceptionLogController类,来把该信息封装成一个LogInfo对象,
然后,把这个LogInfo对象存放到全局唯一的对象LoggingProvider中,
具体存放到LoggingProvider对象的什么成员中呢,是存放到LoggingProvider对象的一个LogInfoArray类型的成员中(LogInfoArray本身就是一个LogInfo的集合,而LoggingProvider的作用就是存储这个集合,并提供相关的操作)。
然后,一般通过LogController(ExceptionLogController的父类)来操作LoggingProvider对象,这些操作包括:向LoggingProvider中添加、移出LogInfo对象,取得LogInfo集合等。
整个过程就是:用ExceptionLogController封装Log,并存放到LoggingProvider中,并通过ExceptionLogController来实现对LoggingProvider的操作。
可能Log的信息,多种多样,LogInfo中的单个属性存储不了这么多属性,于是,LogInfo中就有了一个LogProperties类型的成员。该成员是一个集合,存储的是LogDetailInfo类型的对象。LogDetailInfo类型的对象可以理解成一个键值对,即有名称name和值value的对象。
所以,LogInfo是这样组成的:
LogInfo本身存储一些常见的Log属性,例如用户名,Log创建日期等。
LogInfo还有一个集合成员LogProperties,存储的是一些不常用的属性,例如模块编号。这些不常用的属性都封装成LogDetailInfo对象,以利于扩展。
最后,LogInfoArray是一个存储LogInfo的容器,可以随便装入LogInfo对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?