Write to Windows event log: Difference between revisions
(omit from PostScript) |
(→{{header|PureBasic}}: Added C#) |
||
Line 2: | Line 2: | ||
Write script status to the Windows Event Log |
Write script status to the Windows Event Log |
||
=={{header|C sharp|C#}}== |
|||
In Windows Vista and later or Windows Server 2003, you must have administrative privileges to execute this code. |
|||
<lang csharp>using System.Diagnostics; |
|||
namespace RC |
|||
{ |
|||
internal class Program |
|||
{ |
|||
public static void Main() |
|||
{ |
|||
string sSource = "Sample App"; |
|||
string sLog = "Application"; |
|||
string sEvent = "Hello from RC!"; |
|||
if (!EventLog.SourceExists(sSource)) |
|||
EventLog.CreateEventSource(sSource, sLog); |
|||
EventLog.WriteEntry(sSource, sEvent); |
|||
EventLog.WriteEntry(sSource, sEvent, EventLogEntryType.Information); |
|||
} |
|||
} |
|||
}</lang> |
|||
=={{header|PureBasic}}== |
=={{header|PureBasic}}== |
||
<lang PureBasic>Procedure WriteToLog(Event_App$,EventMessage$,EvenetType,Computer$) |
<lang PureBasic>Procedure WriteToLog(Event_App$,EventMessage$,EvenetType,Computer$) |
Revision as of 15:39, 7 April 2011
You are encouraged to solve this task according to the task description, using any language you may know.
Write script status to the Windows Event Log
C#
In Windows Vista and later or Windows Server 2003, you must have administrative privileges to execute this code. <lang csharp>using System.Diagnostics;
namespace RC {
internal class Program { public static void Main() { string sSource = "Sample App"; string sLog = "Application"; string sEvent = "Hello from RC!";
if (!EventLog.SourceExists(sSource)) EventLog.CreateEventSource(sSource, sLog);
EventLog.WriteEntry(sSource, sEvent); EventLog.WriteEntry(sSource, sEvent, EventLogEntryType.Information); } }
}</lang>
PureBasic
<lang PureBasic>Procedure WriteToLog(Event_App$,EventMessage$,EvenetType,Computer$)
Protected wNumStrings.w, lpString=@EventMessage$, lReturnX, CMessageTyp, lparray Protected lprawdata=@EventMessage$, rawdata=Len(EventMessage$), Result Protected lLogAPIRetVal.l = RegisterEventSource_(Computer$, Event_App$)
If lLogAPIRetVal lReturnX = ReportEvent_(lLogAPIRetVal,EvenetType,0,CMessageTyp,0,wNumStrings,rawdata,lparray,lprawdata DeregisterEventSource_(lLogAPIRetVal) Result=#True EndIf
ProcedureReturn Result
EndProcedure</lang>
PowerShell
<lang powershell># Create Event Log object $EventLog=new-object System.Diagnostics.EventLog("Application")
- Declare Event Source; must be 'registered' with Windows
$EventLog.Source="Application" # It is possible to register a new source (see Note2)
- Setup the Event Types; you don't have to use them all, but I'm including all the possibilities for reference
$infoEvent=[System.Diagnostics.EventLogEntryType]::Information $errorEvent=[System.Diagnostics.EventLogEntryType]::Error $warningEvent=[System.Diagnostics.EventLogEntryType]::Warning $successAuditEvent=[System.Diagnostics.EventLogEntryType]::SuccessAudit $failureAuditEvent=[System.Diagnostics.EventLogEntryType]::FailureAudit
- Write the event in the format "Event test",EventType,EventID
$EventLog.WriteEntry("My Test Event",$infoevent,70)</lang>
Note1: Thanks to PoSH Fan for posting information that got me started on this at Windows PowerShell Blog
Note2: See details on registering a new Event Source with Windows at MSDN
Tcl
<lang tcl>package require twapi
- This command handles everything; use “-type error” to write an error message
twapi::eventlog_log "My Test Event" -type info</lang>