原本用的框架自带接口入参与返回日志,但接手的人把框架自带的日志注释掉了,理由是每条都记录消耗服务器 io 性能和占磁盘。
还有就是估计对框架不了解,没用上框架自带的环境变量启动选择配置,而采用直接替换配置文件的方式。
还有就是代码没用 eslint,有些 es5 和 es6 语法混用。
见过好多二手代码了,感觉做游戏后台开发是不是比应用后台开发更没资料参考,没参考资料就好多自由发挥的奇技淫巧。
1
XiLingHost 2021-03-27 12:21:13 +08:00
配置 loglevel 不就好了?嫌每条都记录就把这个记录配成 DEBUG 级别的,然后生产环境别开这个级别就好了啊
|
2
fanyingmao OP @XiLingHost 框架自带了这个功能,但是之前的人没用。还有就是我感觉日志应该不会消耗那么多性能,我还是想每个接口都做日志,有日志线上问题也比较好排查。
|
3
PerFectTime 2021-03-27 12:27:21 +08:00
做了,无日志排查问题很难受的。
有入参和结果方便对用户操作过程复现 |
4
yuanmomo 2021-03-27 12:31:40 +08:00 via iPhone
接口的地方,必须要加,不然查问题要哭
|
5
EminemW 2021-03-27 12:37:40 +08:00 via iPhone
日志打得不好确实会有所影响
|
6
fanyingmao OP |
7
BeautifulSoap 2021-03-27 13:14:29 +08:00 via Android
不打日志,生产环境出 bug 和问题了排查起来能让你哭
|
8
sujin190 2021-03-27 14:04:13 +08:00
返回不过可以,但是入参不做,出问题完全不知道啥情况了
|
9
nicebird 2021-03-27 15:04:21 +08:00
日志非常耗资源的,出于性能考虑关掉日志是很正常的行为。
应该开启 loglevel,开发时候打开低级别的日志,线上环境关掉。 |
10
vcode 2021-03-27 15:11:10 +08:00
楼上说的很对
|
11
dzdh 2021-03-27 15:14:31 +08:00
搭个车问一下日志怎么记录的?
公共输入输出好说中间件过滤器啥的拦截顺手写一下就行了。 但是像那些三方接口输出、传递参数、程序中中间变量值是一个个挨个手写 Logger.info.还是也有啥统一方法 |
12
limuyan44 2021-03-27 15:18:47 +08:00
对于稳定运行的系统关掉不必要的日志是必须的,当然你要是不缺那点性能的话打到 debug 也没问题。
|
13
fanyingmao OP @limuyan44 初创小项目基本就不缺性能,缺的是用户,而且用户上来了,服务器才多少钱。就现在线上运行的项目 cpu 消耗不到 10% 。我是倾向于用性能换排查的工作量的。
|
14
abcbuzhiming 2021-03-27 21:07:51 +08:00
线上环境里你敢随便开日志打印,还说不影响性能?
这么说吧,你觉得打印日志不影响性能,那你有没有想过为什么现在后端的主要性能瓶颈全部在数据库那边? 你把所有接口的请求和返回全部打日志,你做的事情和数据库有什么两样? |
15
abcbuzhiming 2021-03-27 21:13:12 +08:00
@fanyingmao 朋友,打印日志消耗的是 IO 性能啊。而且我是真不知道,你们的初创项目业务很复杂吗?复杂到必须每个请求和返回都必须打日志才能找到原因?据我所知大部分的初创项目,排查问题都是临时加加日志,解决了问题再去掉,断没有所有请求和返回都打日志的做法。
所有请求和返回都打日志,只有当项目足够大,需要做风控的时候,才会考虑采取这个策略,而且别人也会专门考虑使用旁路流量方式记录日志来不影响线上服务。框架给你的那个接口入参和返回日志是方便你调试的,绝不是给你放那常开的 |
16
fanyingmao OP @abcbuzhiming 记录日志分文件记录比数据库分库设计实现简单多了,正常我做游戏的框架自带分布式,可以分在多台机子上做对应进程的日志,io 瓶颈是很容易控制的,还有如果用 nginx 的日志功能,nginx 也是每个请求都做日志,不知道又没人用 nginx 碰到 io 瓶颈情况。
还有就是做游戏,总有玩家经常会说什么活动任务奖励没领到之类的情况,有日志就好跟踪玩家操作,可以判定是玩家误操作还是 bug 。 |
17
necodba 2021-03-27 22:21:07 +08:00 via iPhone
@fanyingmao 赞同。另外说一句,我觉得这个和应用也有关系,比如之前做游戏和做站点,日志需求完全就不一样
|
18
zjp 2021-03-27 22:52:04 +08:00
日志是顺序写的,性能一点都不差。讲究的话也有异步的方式
|
19
BQsummer 2021-03-28 11:15:24 +08:00 via Android
我们公司把 info 级别的日志行号去掉了,据说性能更好
|
20
raaaaaar 2021-03-29 08:38:48 +08:00 via Android
日志级别不就做这个事么
|
21
ERRASYNCTYPE 2021-03-29 10:39:50 +08:00
异步扔进 mq
|