问题描述:
问题出现时,我是在测试日志模块的功能。make好之后,我在终端执行可执行文件,没有日志输出,如下图所示:
然后我再用gdb执行可执行文件,能输出日志,如下图所示:
这好奇怪,同一个程序,咋还能有不同执行结果?
问题原因和解决:
造成该问题的原因是没有对LogAppender
的m_level
成员进行初始化:
由于没有进行初始化,所以m_level
的值是随机的,所以可能会超出日志等级范围,所以就不一定会有输出。
反思:
- ①以后再遇到这种情况,就要想到可能是某个变量忘记初始化造成的。
- ②任何变量都要注意是否需要初始化。