0x00
项目中针对日志的处理是很常见的问题,需要在开发阶段、真机包、发布包之间做到比较好的平衡。
- 开发阶段:全量日志,任何开发者自己关心的日志消息
- 真机包:减少这部分日志,只保留重要的报错信息
- 发布包:提供crash查错相关的报错信息
0x01
Unity Cs侧使用Log的技巧
1 | [ ] |
1 | //UnityEngine.Debug.unityLogger.logEnabled = false; |
对于void
并无out
修饰的参数的方法,可以使用Conditional属性进行条件编译,如果未定义相应宏,引用此方法的代码均不会被执行(解决了参数构造时,字符串拼接以及装箱等操作的损耗)。
- [x] Debug类中ILogger中
logEnabled
及filterLogType
是否能够实现相同的控制?
答案是不能。
日志不会输出,单仍然会对参数执行构造,字符串拼接等等。只是节省了后续的函数调用(_OnLogCallbackHandler
)
0x02
Conditional属性是否可以对lua框架生效?类似的问题如何处理?
工具对代码行进行注释,需要保证所有log信息写成单行。