Question

I'm trying to create a custom webpart. To implement error handling I would like to write to the eventlog. To do so, I'm trying to use the following code;

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);
            });
        }
    }

When I try to execute this code, I receive an sharepoint error page (unhandled exception). When I look in the eventlog, I see the following message; "Requested registry access is not allowed".

I'm runnning (for testing only) under the full trust level. Can someone point out to me what kind of privileges I would need to write to the eventlog? Or is there another approach?

Help greatly appriciated!

Was it helpful?

Solution

I haven't tried writing to the Windows event log but as an alternative you can write to the SharePoint logs in the 12 hive using the following:

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

Hope this helps

Iain

OTHER TIPS

EventLog Entries in SharePoint:

  1. For WebParts Log the errors in the ULS logs which is present in 12 hive.

  2. For SharePoint Application pages, wrtie the errors in the Event Logs.

  3. All other list and Library related errors will be noted down in the ULS logs only.

Thanks

Update

Writing to the event log requires elevated privileges in the web part:

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

The permissions on:

HKLM\SYSTEM\CurrentControlSet\Services\Eventlog\YourWebPartLog

I think are the cause of your grief. What are the permissions on that vs. the permissions of your application pool?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top