从Sharepoint webpart中写入事件日志

时间:2009-05-11 20:22:27

标签: sharepoint event-log

我正在尝试创建自定义的webpart。要实现错误处理,我想写入事件日志。为此,我正在尝试使用以下代码;

protected void btnExceptionTester_Click(object sender, EventArgs e)
    {
        try
        {
            throw new Exception("this is a test");
        }
        catch (Exception ex)
        {
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                EventLog.WriteEntry("TestWebpart", ex.ToString(), EventLogEntryType.Error);
            });
        }
    }

当我尝试执行此代码时,我收到一个sharepoint错误页面(未处理的异常)。当我查看事件日志时,我看到以下消息; “不允许请求注册表访问”。

我在完全信任级别下运行(仅用于测试)。有人能指出我需要写什么样的特权才能写入事件日志?还是有另一种方法吗?

帮助大大​​帮助!

4 个答案:

答案 0 :(得分:8)

我没有尝试过写入Windows事件日志,但作为替代方法,您可以使用以下内容写入12个配置单元中的SharePoint日志:

Microsoft.Office.Server.Diagnostics.PortalLog.LogString("your message here!");

希望这有帮助

伊恩

答案 1 :(得分:1)

更新

写入事件日志需要在Web部件中提升权限:

SPSecurity.RunWithElevatedPrivileges(delegate { EventLog.WriteEntry(...

以下权限:

HKLM \系统\ CurrentControlSet \服务\事件日志\ YourWebPartLog

我认为是你悲伤的原因。对此有哪些权限与应用程序池的权限?

答案 2 :(得分:1)

SharePoint中的EventLog条目:

  1. 对于WebParts记录12个配置单元中存在的ULS日志中的错误。

  2. 对于SharePoint应用程序页面,请查看事件日志中的错误。

  3. 所有其他列表和库相关的错误仅在ULS日志中记下。

  4. 由于

答案 3 :(得分:0)

看看这篇文章的搭档,它可能会有所帮助.. http://whatsthepointofsharing.wordpress.com/2009/05/01/registry-access-is-not-allowed/