游戏服务器-日志系统

本文介绍了游戏服务器的日志系统,分为业务日志和程序日志,业务日志服务于运营,程序日志用于开发者调试。为了便于问题排查,日志按系统模块和异常类型细分,如系统模块日志和架构代码异常日志。日志输出采用层次目录结构,并通过动态代码配置实现模块化的日志记录,以应对高并发场景。优化方案包括使用异步缓存或缓冲策略提高日志记录效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

游戏服务器-日志系统

游戏服务器的日志系统主要分为业务日志程序日志。业务日志主要是给运营进行使用。程序日志则主要是给开发者调试日志,查找bug使用

扩展:后续可以加上性能检测日志等。

业务日志

业务日志主要是给运营进行使用。

程序日志

程序日志则主要是给开发者调试日志,查找bug使用。为了使日志更加的客观,通常按照不同的系统模块来输出对应模块的程序日志文件,方便后续线上来进行查找bug。

则程序日志可以继续细分:系统模块日志、架构代码异常日志

  • 系统模块日志:

    游戏有需要功能模块:活动、玩家、登录以及各种游戏逻辑模块,如果都统一的讲日志简单统一输出到统一的log的文件中,对于后续排查线上的问题来说会非常麻烦。所以输出结构会改成各个模块都有独立的log文件来进行存储,排查对应模块的问题只需要查找对应模块的日志文件

  • 架构代码异常日志:

    该部分的代码通常是底层架构的异常记录,例如线程模型的异常,事件组件的异常。

日志输出目录结构

— logs

​ —dayLog

​ —${dataTime}

​ —error

​ —root

​ —module01.${i}.log

​ —module02.${i}.log

​ —module03.${i}.log

​ —player

​ —player.log.${dataTime}

实现原理

原始方法:通过不断的在logback.xml文件中配置各个模块的输出信息。

对于游戏服务器来说每新增一个游戏模块就得在logback.xml中加新的配置。这样的做法太不优雅。

可通过代码配置,通过枚举来动态添加即刻。

一个优秀的日志组件就必须可以通过代码动态的添加各种日志模块,输出到各个模块的日志文件中。并且还需要照顾到高并发情况下多个日志记录的问题。通过cache方案异步进行记录,也可通过buffer方案来解决,这两种方案主要看日志的输出目的地,所需要时间(例如本地的合理设置buffer大小也可以很快)

参考:

logback性能优化 AsyncAppender && FileAppender

万字详解logback

公司日志主件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值