一、For Beginner
日志系统主要是一组记录引擎底层及应用逻辑层系统状态变化过程的接口。几乎所有的游戏服务器框架都会有一组操作日志的接口,当然最简单的就是大家所熟悉的printf格式化到标准输出,日志系统的复杂度有高有低,具体目的主要是为调试及运营数据查询需要。可以说日志系统实现是否易用、简洁,将直接影响到开发及运营效率。
二、文件VS数据库
是写文件还是写数据库,这是一个问题。数据库的优势是查询/统计/排序很方便,一旦建立好所有的日志表及其操作以后,后期运营会比较舒服,可以轻松应对策划无休止的BT日志统计需求。但为每个日志建立数据库的表项及其索引是需要有很强前瞻性的,对程序员的经验要求较高,大数据量的数据库数据库表项及其索引的变更所需要的时间比较长, 而日志本身的内容变更应随需而变,这是一个矛盾。写文件的最大好处是简单,方便人工阅读,文件更容易做备份,备份的拆分与合并也更容易,即使要查找若干年以前的数据也不需要很复杂的恢复过程。但文件的数据搜集与统计的成本是很高的,往往不能适应策划的快速响应需求,后期在运营上面支撑不足。 现在很多项目也逐步采用文件与数据库相结合的方式,日志首先写到文件中,然后根据日常统计收集需要将指定的日志定时增量load到数据库中,然后对数据库进行查询,这无疑结合了两种载体
日志系统主要是一组记录引擎底层及应用逻辑层系统状态变化过程的接口。几乎所有的游戏服务器框架都会有一组操作日志的接口,当然最简单的就是大家所熟悉的printf格式化到标准输出,日志系统的复杂度有高有低,具体目的主要是为调试及运营数据查询需要。可以说日志系统实现是否易用、简洁,将直接影响到开发及运营效率。
二、文件VS数据库
是写文件还是写数据库,这是一个问题。数据库的优势是查询/统计/排序很方便,一旦建立好所有的日志表及其操作以后,后期运营会比较舒服,可以轻松应对策划无休止的BT日志统计需求。但为每个日志建立数据库的表项及其索引是需要有很强前瞻性的,对程序员的经验要求较高,大数据量的数据库数据库表项及其索引的变更所需要的时间比较长, 而日志本身的内容变更应随需而变,这是一个矛盾。写文件的最大好处是简单,方便人工阅读,文件更容易做备份,备份的拆分与合并也更容易,即使要查找若干年以前的数据也不需要很复杂的恢复过程。但文件的数据搜集与统计的成本是很高的,往往不能适应策划的快速响应需求,后期在运营上面支撑不足。 现在很多项目也逐步采用文件与数据库相结合的方式,日志首先写到文件中,然后根据日常统计收集需要将指定的日志定时增量load到数据库中,然后对数据库进行查询,这无疑结合了两种载体