The System.Diagnostics.EventLog class provides a way to interact with a windows event log. I use it all the time for simple logging…
System.Diagnostics.EventLog.WriteEntry('MyEventSource', 'My Special Message')
Is there a way to set the user information in the resulting event log entry using .NET?
Toughie …
I looked for a way to fill the user field with a .NET method. Unfortunately there is none, and you must import the plain old Win32 API [ReportEvent function](http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx) with a
DLLImportAttributeYou must also redeclare the function with the right types, as Platform Invoke Data Types says
So
becomes
You also want to look at [OpenEventLog](http://msdn.microsoft.com/en-us/library/aa363672(VS.85).aspx) and [ConvertStringSidToSid](http://msdn.microsoft.com/en-us/library/aa376402(VS.85).aspx)
Oh, and you’re writing unmanaged code now… Watch out for memory leaks.Good luck :p