[DllImport("advapi32.dll", SetLastError=true, EntryPoint="ClearEventLog")]
[return: MarshalAs(UnmanagedType.U1)]
public static extern bool ClearEventLog(
IntPtr hEventLog,
[MarshalAs(UnmanagedType.LPStr)] String lpBackupFileName);
Declare Function ClearEventLog Lib "advapi32.dll" (TODO) As TODO
None.
EventLog.Clear()
http://msdn.microsoft.com/es-es/library/system.diagnostics.eventlog.clear.aspx
hEventLog is the handle for the log you wish to operate on, this handle can be got from OpenEventLog if needed.
Please add some!
Quick and cheerful, this routine will attempt to save and clear the specified EventLog to the specified folder.
Boolean ClearAndSavelog (string logName, string savePath)
{
// EventLog Handle
IntPtr hEventLog = IntPtr.Zero;
// Return status flag
Boolean Result = false;
try
{
// Attempt to acquire a handle to our event log.
hEventLog = NativeMethods.OpenEventLog(IntPtr.Zero, logName);
if (hEventLog == IntPtr.Zero)
{
// Wrap in an exception and throw the error upwards.
throw new Win32Exception(Marshal.GetLastWin32Error());
}
// Construct a full filename string.
String FullSavePath = (_ReportLocation
+ @"\" + logName + " EVENTLOGDUMP "
+ ".evt");
// Attempt to clear and save the eventlog.
Boolean success = NativeMethods.ClearEventLog(hEventLog, savePath);
if (!success)
{
// Wrap in an exception and throw the error upwards.
throw new Win32Exception(Marshal.GetLastWin32Error());
}
// All operations completed OK.
Result = true;
}
catch (Win32Exception ex)
{
// TODO: Error handling/logging.
}
finally
{
// Ensure any open handle is closed.
if (hEventLog)
{
NativeMethods.CloseEventLog(hEventLog);
}
}
return Result;
}