问题出现:
在docker容器启动后,能正常提供一段时间的服务,过一段时间发现容器异常重启;
查看映射出来的日志文件后,未发现任何Error级别的日志;
问题分析:
1.日志文件映射问题
2.docker 错误输出
3.docker 自身问题
4.log4net 配置问题
验证分析
1.日志正常输出,有其他的Info,Debug级别日志输出
2.docker logs 能查到错误输出【未验证】
3.docker 刚刚重启过,其他同框架写的后端服务没问题
4.查看log4net日志配置
解决问题
log4net的这个配置还一般不太去关注它,因为基本上都是用默认的,但偏偏我们的配置不一样:
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="ERROR"/>
<levelMin value="DEBUG"/>
</filter>
最大过滤输出日志级别是ERROR,但我们的错误是FATAL
所以一直未输出的异常日志是因为输出日志级别最大为ERROR,小于我们程序的出错级别;
把ERROR修改为FATAL,重启容器开始有异常退出日志:FATAL级别;
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="FATAL"/>
<levelMin value="DEBUG"/>
</filter>
最终问题是我们使用了IOC容器,有部分配置文件未上传。
1.一直以为FATAL日志是程序起不来才会出现,不必要写上,这样的错误关点,也就是以前未太关注此参数的问题所在;
2.做程序要严谨,墨非定律一定会存在
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/atzqtzq/article/details/123491725