2018年5月2日 问题记录

问题:
1.服务上正式环境没有日志也没有MongDB日志
2.文本日志只有部分,而且只有开始没有结束
3.数据库连接字符串解密可能会存在问题。


分析:
1.如果是数据库连接不上导致的,那么只需要将本地数据库连接改错,就可还原改BUG
并且肯定会有MongoDB日志,但是现在没有日志。
2.MongoDB没有日志是否是地址配错。或者配置根本没有生效
但是经检验配置没错。(此时应该怀疑配置文件修改是否正确,后来发现是修改的文件位置不对,配置未生
效)
3.没有记录日志最后查出是因为MongoDB实例化在数据库实例化后,如果数据库实例化报错,则直接进入
Catch,但此时MongoDB对象还是空,故没有写入日志。
4.文本日志记录没有结束并且没有全部执行这个很奇怪,检查发现异常捕捉没有包括到日志记录方法。
加上了异常捕捉后,发现是文本日志记录文件被占用。

经验:

1. 控制台程序的配置设置是在Debug下的exe.Config文件,不是项目中的App.Config文件

2. MongoDB服务实例化应该在Try方法体的行首,否则,异常捕捉时该对象还没实例化,就不能记录到日志

3. 异常捕捉应该要把所有的代码都囊括在大括号内,以保证任何一行代码出错都可以准确知道是哪里错了。

像这个文本日志导致文件占用的问题,打死都没想到。但他就是发生了。

问题总结:

1.拷贝代码容易烤漏或者忘记替换,所以,以后拷贝时一定要看清楚并且检查。如果是重复的代码,一定要提取出来,做成公共方法。(这一点可以避免很多拷贝错漏的问题)

2.MongoDB日志一定要确保在任何情况下是可以捕捉到并记录的。例如:MongoDb对象一定要new在前面
异常捕捉确保能够写入日志
3.代码风格保持一致,代码规范时刻谨记
4.可变的变量都需要放在配置中可配置
5.服务等不方便监控的程序一定要日志详细,并且各种可能都要试到

 

posted @ 2018-05-02 15:22  !opts  阅读(90)  评论(0编辑  收藏  举报