Find Errors in Notes Log
This tip is useful to automatically scan the Notes Logs on servers for keywords that indicate errors. Results are e-mailed to the user indicated in the script.
View member feedback to this tip.
This tip is useful to automatically scan the Notes Logs on servers for keywords that indicate errors. Results are e-mailed to the user indicated in the script.
'Find errors: 'This agent searches today's documents in server logs (log.nsf) for particular words that indicate errors. 'A list is generated and inserted into a mail message that is sent to the current user. 'Add the agent to a database on the server and schedule it to run daily. 'Make sure that the agent signer has rights to read the Notes Log. Option Public Dim db As NotesDatabase Dim dc As NotesDocumentCollection Dim doc As NotesDocument Dim mailDb As NotesDatabase Dim mailDoc As NotesDocument Dim dt As String Dim item As NotesItem Dim rtitem As NotesRichTextItem Dim rtStyle As NotesRichTextStyle Const ADMIN = "Your Administrator" Sub Initialize Dim s As New NotesSession REM Words to search log for. Increase array bounds and add more words if needed. Dim srch (4) As String srch(0) = "unable" srch(1) = "error" srch(2) = "fail" srch(3) = "ATTEMPT" srch(4) = "invalid" REM Servers' logs to search. Increase array bounds and add more servers if needed. Dim srv (3) As String srv(0) = "Svr1" srv(1) = "Svr2" srv(2) = "Svr3" srv(3) = "etc" REM Set up today's date and format dt = Format(Date$, "mm/dd/yyyy") REM Create mail memo to hold output from server log Dim db As NotesDatabase Set db = s.GetDatabase("", "names.nsf", False) Set mailDoc = New NotesDocument( db ) Set rtitem = New NotesRichTextItem( mailDoc, "Body") Set rtStyle = s.CreateRichTextStyle Dim msg As String msg = "Search Keywords: " Forall w In srch msg = msg & { "} & w & {"} End Forall rtStyle.Bold=True Call rtitem.AppendStyle(rtStyle) Call rtItem.AppendText( msg ) rtStyle.Bold = False Call rtitem.AppendStyle(rtStyle) Call rtitem.AddNewline(2) REM Process for every server Forall m In srv Print "Searching Notes Log on " & m Set db = s.GetDatabase( m, "log.nsf") Call rtitem.AddNewline(1) rtStyle.Bold = True Call rtitem.AppendStyle(rtStyle) Call rtitem.AppendText("Log for " & db.Server) rtStyle.Bold = False Call rtitem.AppendStyle(rtStyle) Call rtitem.AddNewline(2) REM Process for each search word in one server's log Forall e In srch Set dc = db.FTSearch( dt , 0) Call dc.FTSearch(e, 0) REM Process if any words are found If dc.Count > 0 Then REM Process the list of docs containing the search word and add them to mail message Call FindErrors( dc , e) End If End Forall 'process next search word End Forall 'process next server REM Send report to admin If Not mailDoc Is Nothing Then mailDoc.Form = "Memo" mailDoc.From = "Notes Error Log Report" mailDoc.Subject = "Error Report from Notes Logs" Call mailDoc.Send(False, ADMIN) End If End Sub Sub FindErrors ( coll As NotesDocumentCollection, srctxt As String) For i = 1 To coll.Count Set doc = coll.GetNthDocument(i) Set item = doc.GetFirstItem("EventList") Forall v In item.Values 'Msgbox v chk = Instr(1, v, srctxt, 5) If Not chk = 0 Then 'Msgbox v Call rtitem.AppendText( v ) Call rtitem.AddNewline(1) End If End Forall Next End Sub
Whenever I run this tip I get the following error message:
Object Variable not set:
I assume the only things I have to set are:
Administrator email address
SVR = server
srch = keyword
—A. Wilkie
******************************************
The agent as posted is designed to be installed in a server database and scheduled to run on a server. The user is apparently running it on a Notes client which will generate this error. I run it on a schedule from the server so I can have my report first thing in the morning.
However, I also have a modified version that can be added to the user's mail database and launched from the Notes client when he is in the mail file. To view this version of the tip, click here.
—Mike Long, tip author
Do you have comments on this tip? Let us know.
Please let others know how useful it is via the rating scale below. Do you have a useful Notes/Domino tip or code to share? Submit it to our monthly tip contest and you could win a prize and a spot in our Hall of Fame.