|
1
3
IL偏移量编号不带调试符号。结合栈信息和散列,我认为这可以做到。 这里有一篇文章,部分内容涉及检索IL偏移量(为了将其记录为与PDB文件的脱机匹配——不同的问题,但我认为它将向您展示您需要的东西): |
|
|
2
5
下面是一些代码,您可以使用我在问题中描述的属性生成eventid:
getiloffset()方法调用在执行时给出特定帧中的位置。 我将这些偏移量与整个stacktrace连接起来,为程序中的当前位置提供一个唯一的字符串。 最后,因为只有65536个唯一的事件ID,所以逻辑和针对0xffff的散列码可以提取最低有效的16位。然后,该值变为eventid。 |
|
|
3
1
使用最后但只有一个堆栈帧的iloffset而不是行号(即上面testlog方法的堆栈帧)创建哈希。 |
|
|
4
1
* 重要提示:这篇文章的重点是解决问题出现的根本原因,而不是提供您特别要求的解决方案。我意识到这篇文章已经过时了,但我觉得贡献自己很重要。* 我的团队也遇到了类似的问题,我们改变了管理日志的方式,这大大减少了生产支持和错误修补时间。实际上,这适用于我的团队工作的大多数企业应用程序:
当然,你的应用程序有多大,数据有多敏感也很重要。我们中的大多数人大约有10到50万行的代码,并且信息的敏感度最低。它可能觉得过于简单化,但从亲吻的角度来看,它实际上是有效的。 也就是说,使用一个抽象事件日志类来简化这个过程可以很容易地使用,尽管清除我的代码会让人不快。例如: MyCase.CS (使用包装纸)
事件日志适配器.cs
|
|
|
5
0
多亏了对调用堆栈进行哈希处理的想法,我还想问同样的问题,如何选择一个eventid。 我建议在日志中放入一个静态变量,每次调用该变量时都会递增。 |
|
|
6
-1
您在事件查看器中有过滤器,所以为什么(转到“查找”?您也有65536个唯一的事件ID。 还是用log4net之类的?? 只是我的想法…… |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |