' CoreLog class v1.00 by yamachan 2006/08/22 Public Class CoreLog Private traceMaxLevel As Integer Private logDoc As NotesDocument Private itemDetail As NotesRichTextItem Private itemTrace As NotesRichTextItem Private timeStart As NotesDateTime ' ------- Geter/Seter methods ------- Public Sub setTraceLevel(level%) If (0 < level% And level% < 100) Then Me.traceMaxLevel% = level% Else Me.traceMaxLevel% = 0 End If End Sub Public Function getTraceLevel() As Integer getTraceLevel = Me.traceMaxLevel% End Function Public Function getLog() As NotesRichTextItem Set getLog = Me.itemDetail End Function Public Function getTrace() As NotesRichTextItem Set getTrace = Me.itemTrace End Function ' ------- Public methods ------- Public Sub logText(message$) Me.getLog().AppendText(message$) Call Me.getLog().AddNewLine(1) End Sub Public Sub traceText(message$, level%) If level% <= Me.getTraceLevel() Then Me.getTrace().AppendText(message$) Call Me.getTrace().AddNewLine(1) End If End Sub Public Sub saveLog() Call Me.logDoc.Save(True, True) End Sub Public Sub closeLog() Dim timeComplete As NotesDateTime Me.logDoc.Status = "ok" Set timeComplete = New NotesDateTime(Now()) Me.logDoc.End = timeComplete.LSLocalTime Me.logDoc.Elapsed = timeComplete.TimeDifference(Me.timeStart) Call saveLog() Delete timeComplete End Sub ' ------- Constractor/Destractor methods ------- Sub New(doc As NotesDocument, level%, logType$) Dim session As New NotesSession If doc Is Nothing Then Set Me.logDoc = session.CurrentDatabase.CreateDocument Me.logDoc.Form = "fLogCore" Else Set Me.logDoc = doc End If Set Me.timeStart = New NotesDateTime(Now()) Me.logDoc.Start = Me.timeStart.LSLocalTime Me.logDoc.Executant = session.UserName Me.logDoc.Status = "pending" Me.logDoc.Type = logType$ Set Me.itemDetail = createRichtextMember(logDoc, "Detail") Set Me.itemTrace = createRichtextMember(logDoc, "Trace") Me.setTraceLevel(level%) End Sub Sub Delete Delete Me.timeStart End Sub ' ------- Private methods ------- Private Function createRichtextMember(doc As NotesDocument, itemName$) As NotesRichTextItem Dim item As NotesRichTextItem Set item = doc.GetFirstItem(itemName$) If item Is Nothing Then Set item = doc.CreateRichTextItem(itemName$) Elseif item.Type <> RICHTEXT Then tmpText$ = item.Text Call doc.RemoveItem(itemName$) Set item = doc.CreateRichTextItem(itemName$) Call item.AppendText(tmpText$) End If Set createRichtextMember = item End Function End Class