架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16732|回复: 0

[资料] .net/c# log4net 错误异常不记录行号原因分析

[复制链接]
发表于 2017-8-3 14:13:01 | 显示全部楼层 |阅读模式
最近,在正式环境上部署了一个项目,发现,一些方法抛出了异常信息

但是,只给出来了异常错误信息,并没有异常的行号,只知道在某个方法里面,模型转换出了问题

但是,让我一个一个对照,太烦了,为什么不记录错误的行号呢?

log4net日志配置如下:

c# log4net日志配置详解
http://www.itsvse.com/thread-2892-1-1.html
(出处: 架构师)

我在本地电脑上Home/Index方法里面故意写出一个异常信息,看看是否会记录行号:



发现,错误日志文件,会记录行号啊,肯定不是log4net配置的问题了,因为,两边的配置都是一样的

会不会是编译模式的问题???

我本机电脑是debug模式,正式服务器编译的dll是release模式

然后,我把本地项目改成了release模式,发现,还是记录行号啊。。。。

然后,百度之,发先一句话:“需要copy dll对应的.pdb文件

额,是不是这个问题呢?然后,我直接进bin目录,把dll对应的.pdb文件删除,然后,刷新网站,发现异常日志如下:

QQ截图20170803140159.jpg

果然不记录异常行号了!!!!!!

果真是.pdb的问题!!!需要保留.pdb文件,异常才会记录行号!!!!

QQ图片20170803141404.jpg

PDB文件是干嘛的?


PDB文件:每个开发人员都必须知道的

一 什么是PDB文件

大部分的开发人员应该都知道PDB文件是用来帮助软件的调试的。但是他究竟是如何工作的呢,我们可能并不熟悉。本文描述了PDB文件的存储和内容。同时还描 述了debugger如何找到binay相应的PDB文件,以及debugger如何找到与binay对应的源代码文件。本文适用于所有的Native和 Managed的开发人员。

在开始前,我们先定义2个术语:private build, 用来表示在开发人员自己机器上生成的build;public build,表示在公用的build机器上生成的build。private build相对来说比较简单,因为PDB和binay在相同的地方,通常地我们遇到的问题都是关于public build。  

所有的的开发人员需要知道的最重要的事情是”PDB文件跟源代码同样的重要“, 没有PDB文件,你甚至不能debugging。对于public build,需要symbol server存储所有的PDB,然后当用户报告错误的时候,debugger才可以自动地找到binay相应的PDB文件, visual studio 和 windbg都知道如何访问symbol server。在将PDB和binay存储到symbol server前,还需要对PDB运行进行source indexing, source indexing的作用是将PDB和source关联起来。  

接下来的部分假设有已经设置好了symbol server和source server indexing。TFS2010中可以很简单地完成对一个新的build的source indexing 和 symbol server copying。

二 PDB文件的内容

正式开始PDB的内容,PDB不是公开的文件格式,但是Microsoft提供了API来帮助从PDB中获取数据。

Native C++ PDB包含了如下的信息:
* public,private 和static函数地址;
* 全局变量的名字和地址;
* 参数和局部变量的名字和在堆栈的偏移量;
* class,structure 和数据的类型定义;
* Frame Pointer Omission 数据,用来在x86上的native堆栈的遍历;
* 源代码文件的名字和行数;

.NET PDB只包含了2部分信息:
* 源代码文件名字和行数;
* 和局部变量的名字;
* 所有的其他的数据都已经包含在了.NET Metadata中了;  





上一篇:由于管理员设置的策略,该磁盘属于脱机状态
下一篇:找个网站技术员一起创业
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-28 17:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表