This is a very short article which shows how to write any information into the system event viewer. This is something that can be very useful when trying to debug processes such as batches that are difficult to debug. One thing to note is that if the code is running on the AOS the information will be written to the EventViewer on the AOS, just something to keep in mind if you don’t see your message in the EventViewer.
static void writeEventLogEntry(Args _args)
{
System.Diagnostics.EventLog eventlog;
#Define.LogSource("Dynamics AX")
#Define.LogName("Application")
;
// check if the log already exists
if(!System.Diagnostics.EventLog::SourceExists(#LogSource))
{
// create new log
System.Diagnostics.EventLog::CreateEventSource(#LogSource, #LogName);
}
eventlog = new System.Diagnostics.EventLog();
eventlog.set_Source(#LogSource);
// write info entry
eventlog.WriteEntry(": Just writing in the event viewer." );
// write error entry
eventlog.WriteEntry(": Please check the stack trace below. \n\n" +
con2str(xSession::xppCallStack()), System.Diagnostics.EventLogEntryType::Error);
// write warning entry
eventlog.WriteEntry("Job finished." , System.Diagnostics.EventLogEntryType::Warning);
}