向SharePoint的ULS日志中写入自己的跟踪信息

SharePoint中自定义的webpart, event handler, workflow非常常见. 这些集成了的东西如果报错很难排查. 这篇文章列出介绍简单的使用ULS日志的方法.

 

参考下面的资料来了解如何向ULS日志中写入信息

==============

SharePoint Trace Logs and the Unified Logging Service (ULS)

http://weblogs.asp.net/erobillard/archive/2008/07/31/sharepoint-trace-logs-and-the-unified-logging-service-uls.aspx

Writing to the Trace Log

http://msdn.microsoft.com/en-us/library/aa979595.aspx

Trace Log Example

http://msdn.microsoft.com/en-us/library/aa979522.aspx

 

知道了怎么写, 还需要知道要写什么. 排查错误最需要的信息, 就是丢出错误的代码位置. 知道了位置之后, 才可以展开相应的一些猜想, 验证, 或者再添入一些可疑对象字段的值的日志输出.

 

下面的代码段显示了如何从exception中拿到错误的行号等信息.

static void Main(string[] args)
{
    try
    {
        Fun1();
    }
    catch (Exception ex)
    {
        System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
        Console.WriteLine(trace.GetFrame(0).GetMethod().Name); //Get deepest error function.
        Console.WriteLine("Line: " + trace.GetFrame(0).GetFileLineNumber()); //Get error line number.
        Console.WriteLine("Column: " + trace.GetFrame(0).GetFileColumnNumber());
        Console.WriteLine(ex.ToString());//All in one! This one is simplest.
    }
}

static void Fun1()
{
    throw new Exception("An error has happened");
}

 

System.Diagnostics.StackTrace的GetFrame(index)方法可以得到StackFrame对象, Stack Frame的index是从0开始的, 0是最后一个入栈的stackframe.

posted on   中道学友  阅读(782)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

< 2010年1月 >
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

技术追求准确,态度积极向上

点击右上角即可分享
微信分享提示