你们做服务端会对接口的入参和结果做日志吗?

2021-03-27 12:13:46 +08:00
 fanyingmao

原本用的框架自带接口入参与返回日志,但接手的人把框架自带的日志注释掉了,理由是每条都记录消耗服务器 io 性能和占磁盘。

还有就是估计对框架不了解,没用上框架自带的环境变量启动选择配置,而采用直接替换配置文件的方式。

还有就是代码没用 eslint,有些 es5 和 es6 语法混用。

见过好多二手代码了,感觉做游戏后台开发是不是比应用后台开发更没资料参考,没参考资料就好多自由发挥的奇技淫巧。

2845 次点击
所在节点    问与答
21 条回复
XiLingHost
2021-03-27 12:21:13 +08:00
配置 loglevel 不就好了?嫌每条都记录就把这个记录配成 DEBUG 级别的,然后生产环境别开这个级别就好了啊
fanyingmao
2021-03-27 12:27:10 +08:00
@XiLingHost 框架自带了这个功能,但是之前的人没用。还有就是我感觉日志应该不会消耗那么多性能,我还是想每个接口都做日志,有日志线上问题也比较好排查。
PerFectTime
2021-03-27 12:27:21 +08:00
做了,无日志排查问题很难受的。
有入参和结果方便对用户操作过程复现
yuanmomo
2021-03-27 12:31:40 +08:00
接口的地方,必须要加,不然查问题要哭
EminemW
2021-03-27 12:37:40 +08:00
日志打得不好确实会有所影响
fanyingmao
2021-03-27 12:40:47 +08:00
@yuanmomo
@PerFectTime
没日志开发非常累,上家就是没打接口日志,这家又给我碰上了,我都要以为不打接口日志是普遍现象了。
BeautifulSoap
2021-03-27 13:14:29 +08:00
不打日志,生产环境出 bug 和问题了排查起来能让你哭
sujin190
2021-03-27 14:04:13 +08:00
返回不过可以,但是入参不做,出问题完全不知道啥情况了
nicebird
2021-03-27 15:04:21 +08:00
日志非常耗资源的,出于性能考虑关掉日志是很正常的行为。
应该开启 loglevel,开发时候打开低级别的日志,线上环境关掉。
vcode
2021-03-27 15:11:10 +08:00
楼上说的很对
dzdh
2021-03-27 15:14:31 +08:00
搭个车问一下日志怎么记录的?

公共输入输出好说中间件过滤器啥的拦截顺手写一下就行了。

但是像那些三方接口输出、传递参数、程序中中间变量值是一个个挨个手写 Logger.info.还是也有啥统一方法
limuyan44
2021-03-27 15:18:47 +08:00
对于稳定运行的系统关掉不必要的日志是必须的,当然你要是不缺那点性能的话打到 debug 也没问题。
fanyingmao
2021-03-27 15:48:15 +08:00
@limuyan44 初创小项目基本就不缺性能,缺的是用户,而且用户上来了,服务器才多少钱。就现在线上运行的项目 cpu 消耗不到 10% 。我是倾向于用性能换排查的工作量的。
abcbuzhiming
2021-03-27 21:07:51 +08:00
线上环境里你敢随便开日志打印,还说不影响性能?

这么说吧,你觉得打印日志不影响性能,那你有没有想过为什么现在后端的主要性能瓶颈全部在数据库那边?

你把所有接口的请求和返回全部打日志,你做的事情和数据库有什么两样?
abcbuzhiming
2021-03-27 21:13:12 +08:00
@fanyingmao 朋友,打印日志消耗的是 IO 性能啊。而且我是真不知道,你们的初创项目业务很复杂吗?复杂到必须每个请求和返回都必须打日志才能找到原因?据我所知大部分的初创项目,排查问题都是临时加加日志,解决了问题再去掉,断没有所有请求和返回都打日志的做法。

所有请求和返回都打日志,只有当项目足够大,需要做风控的时候,才会考虑采取这个策略,而且别人也会专门考虑使用旁路流量方式记录日志来不影响线上服务。框架给你的那个接口入参和返回日志是方便你调试的,绝不是给你放那常开的
fanyingmao
2021-03-27 21:37:15 +08:00
@abcbuzhiming 记录日志分文件记录比数据库分库设计实现简单多了,正常我做游戏的框架自带分布式,可以分在多台机子上做对应进程的日志,io 瓶颈是很容易控制的,还有如果用 nginx 的日志功能,nginx 也是每个请求都做日志,不知道又没人用 nginx 碰到 io 瓶颈情况。

还有就是做游戏,总有玩家经常会说什么活动任务奖励没领到之类的情况,有日志就好跟踪玩家操作,可以判定是玩家误操作还是 bug 。
necodba
2021-03-27 22:21:07 +08:00
@fanyingmao 赞同。另外说一句,我觉得这个和应用也有关系,比如之前做游戏和做站点,日志需求完全就不一样
zjp
2021-03-27 22:52:04 +08:00
日志是顺序写的,性能一点都不差。讲究的话也有异步的方式
BQsummer
2021-03-28 11:15:24 +08:00
我们公司把 info 级别的日志行号去掉了,据说性能更好
raaaaaar
2021-03-29 08:38:48 +08:00
日志级别不就做这个事么

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/765646

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX