TrinityCore框架_日志模块功能实现
最近更新:2024-09-23
|
字数总计:593
|
阅读估时:2分钟
|
阅读量:次
- 日志模块的作用
- 日志模块概述
- logger
- appender
- 实现日志模块
- log单例
- 宏定义
- appender实现
- appender设计实现
- 模板模式
- 代码骨架
- 如何扩展
- 日志的异步与同步
日志模块的作用
- 故障排查(当系统出现问题,通过日志定位问题)
- 性能优化
- 分析日志
- 找到性能瓶颈
- 针对性优化
- 监控和警报
- 数据分析
- 分析用户行为
- 分析功能使用情况
日志模块概述
logger
- 指定规则
- 规则
- 继承关系
- 对日志类型分类
- 都继承自root节点
- 通过.来设置继承关系
- 如果没有设置日志级别,则继承祖先日志级别
- 日志级别
- 过滤日志内容
- 开发阶段,详细日志
- 发布阶段,重要日志
- appender列表
- 日志目的地
- 为不同的logger设置多个appender(打印到多个不同的目的地)
appender
- 日志打印的目的地
- 规则
- console,可以设置不同的颜色
- file,可以定制文件名,时间戳写在文件名中,设置成文件大小的最大值,写的行为(追加、覆盖写)
实现日志模块
log单例
- 从配置中初始化日志模块
- 构建logger和appender的层次关系
宏定义
- TC_LOG_XXXX(filterType_, …)
- XXXX: 代表日志级别
- 先判断全局的最低日志级别(SetLogLevel进行设置)
- 再判断logger日志级别
- 最后判断appender日志级别
- 规则:level >= 配置中的日志级别,才会输出具体日志
- filterType_ : 代表不同的logger
- … : 代表日志内容
appender实现
- 继承基类,复写_write函数,实现具体的打印方法
appender设计实现
模板模式
- 模板模式:定义算法骨架,将骨架中的步骤算法延迟到子类中实现
- 将通用的算法,抽象到基类中,在基类中来定义如何调用该算法
代码骨架
- appender类
- 算法骨架接口:write
- 骨架步骤抽象:_write
如何扩展
- 定义一个类继承appender类
- 定义type,实现getType
- 在private下面实现_write,用于将日志内容输出到不同目的地
日志的异步与同步
- 同步与异步的区别:是否占用当前线程输出日志
- TrinityCore中异步日志占用了哪些线程?
- 接收连接的acceptor线程
- post到acceptor多线程环境中具体执行
- 怎么保证日志顺序?strand执行器
2024-06-11
该篇文章被 Cleofwine
归为分类:
Game