log4net还不会用,网上那么多介绍log4net的,可都没有我想要的。因为以前都是单步debug,所以想知道:log4net 可以像单步debug那样吗?
多线程中debug的东西涉及到两块
1.线程之间的竞争,这个我感觉只能通过日志(有些时候有日志和没日志也会导致不同结果)和写demo来确认。死锁的话可以用windbg来找。
2.除去上面的情况,在确认线程间没问题或干扰的情况下,可以在线程执行的某个点打个断点,等执行暂停后切换到你期望的线程中(vs的线程窗口中),把其他线程都冻结(同时确保不会再有额外线程生成,比如timer等),然后就可以开心的单步调试了。
mark,同问,我原来多线程debug很卡,而且经常线程跳来跳去
单步调试是单步调试。
Log4net是日志记录。
Python八荣八耻听说过么?传说中的Python程序员是从来不单步的。
以动手实践为荣,以只看不练为耻。
以打印日志为荣,以单步跟踪为耻。
以空白分隔为荣,以制表分隔为耻。
以单元测试为荣,以手工测试为耻。
以代码重用为荣,以复制粘贴为耻。
以多态应用为荣,以分支判断为耻。
以Pythonic为荣,以冗余拖沓为耻。
以总结思考为荣,以不求甚解为耻。
日志记录是单步调试不可替代的,软件到了生产环境出问题,你如何单步?
可以推荐怎么log4net的文章么?
@addsds: 自行Google。
BTW,我个人更喜欢NLog。
说多几句:
1、使用LOG4NET本身是很简单的,不简单的是如何正确使用。
2、多线程调试可以使用单线程完成初步调试,多线程环境下如何正确写代码,更重要的是理解和多读书,知道哪些资源容易产生并发冲突。多线程问题更需要思考,而不是debug。
编码期:
1.把异步改为同步,先测试OK同步过程,再改为异步。
2.直接断点到目标观察点。
3.状态标记等
多线程无法断点单步debug
@addsds: 怎么可能嘛,既然都异常了,堆栈信息就你不日志,看vs下面的窗口都会显示,堆栈信息有了难道还不能定位。
尽量拆分成单步来debug..
哪里有问题就在哪里下断点调试,不管是单线程还是多线程,都应该是哪里有问题去哪里断点调试吧