How to write to Eventlog from NAV (using DotNet)

okioki Member Posts: 46
Hi,
sometimes it is helpful to log debug data somewhere without disturbing / debugging the client itself - paticularly if you want to track web services where the sessions are difficult to catch.
Here is a little code snippet to write to the event log with USERID, Database and ServiceTier-Information easily.
PROCEDURE DebugMesssage(pText:Text, pEventType:'Info,Warning,Error')

LCompanyInformation.GET;
LCompanyInformation.GetSystemIndicator(LText,LType); // LType::"0" = Standard
LText := 'DEBUG-MESSAGE from '+ USERID+'@'+ LText+':  ';
LText[STRLEN(LText)-1] := 13;
LText[STRLEN(LText)-0] := 10;
pText := LText+pText;
LEvtLog := LEvtLog.EventLog('Application'); 
LEvtLog.Source := 'MicrosoftDynamicsNav'; // you can define your own categories here

CASE pEventType OF
  pEventType::Info:    LEvtLogType := LEvtLogType.Information;
  pEventType::Warning: LEvtLogType := LEvtLogType.Warning;
  pEventType::Error:  LEvtLogType := LEvtLogType.Error;
END;
LEvtLog.WriteEntry(pText,LEvtLogType);
LEvtLog.Dispose;

Local variables are:
LEvtLog | DotNet | System.Diagnostics.EventLog.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
LEvtLogType | DotNet | System.Diagnostics.EventLogEntryType.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
LCompanyInformation | Record | Company Information
LType | Option
LText | Text

Have fun.
Oli
Sign In or Register to comment.