' EXAMPLES LOGGING
' logger.wlogcolor("ERROR 1 MAIN - LINE 356", Colors.Red)
' logger.tlogcolor("TOTAL REGISTROS:" & (Cursor1.RowCount - 1),Colors.Green)
' logger.wlog("------Default Color-------------")
' EXAMPLES READ AND VIEW
' FOR TEXT AND LIST
'(*) logtext.Text=logger.ReadLog
'(*) logger.ReadList(ListView1)
' EXAMPLES WRITE LOGS
'(*) logger.writelogfile("TEXT TO SAVE", Colors.Red,"YOURFILE.ooo")
'(*) logger.delete_file("wildcards")
'(*) MOTHER FUNCTIONS, THE OTHER USES THIS.
Sub Process_Globals
'default file for simplicity
Dim file2log= "activity.log" As String
End Sub
' same as logcolor save to file
' MASTER FUNCTION: UNIQUE FUNCTION THAT WRITE THE LOGSFILE--------------------------------------------------
public Sub wlogcolor(TEXT As String, c As Int)
writelogfile(TEXT , c ,file2log)
LogColor(TEXT,c)
End Sub
'CHILDS FUNCTION -------------------------------------------------------------------------------------------
' same as logcolor save to file AND TOAST MESSAGE
public Sub tlogcolor(TEXT As String,colo As Int)
Dim cbs As CSBuilder
wlogcolor(TEXT,colo)
cbs.Initialize.Color(colo).Append(TEXT).PopAll
ToastMessageShow(cbs,True)
End Sub
' same as log save to file
public Sub wlog(TEXT As String)
wlogcolor(TEXT,Colors.LightGray)
End Sub
' same but create custom color for ERRORS
'FILE FUNCTION -------------------------------------------------------------------------------------------
'READ FUNCTION -------------------------------------------------------------------------------------------
' read the log and return CSBUILDER ( Use with textedit multiline )
' Use:
' Dim ed As EditText
' ed.TEXT=ReadLog
public Sub ReadLog As CSBuilder
Return ReadLogFile(file2log)
End Sub
public Sub ReadLogFile(logfile As String) As CSBuilder
Private tr As TextReader
Private csb As CSBuilder
Private oneline,s As String
Dim c As Int
csb.Initialize
tr.Initialize(File.OpenInput(File.DirDefaultExternal, logfile))
Dim lista = tr.ReadList As List
Dim i=lista.Size-1 As Int
Do While i >= 0
oneline=lista.Get(i)
i=i-1
If oneline.Contains("#") Then
s = oneline.SubString2(oneline.IndexOf("#")+1,oneline.Length)
c = oneline.SubString2(0,oneline.IndexOf("#"))
csb.Color(c).Append(s).Append(CRLF).Pop
End If
'else ignore (can rebuild to plain txt)
Loop
csb.PopAll
Return csb
End Sub
' read the log and return CSBUILDER ( Use with listview)
'USE:
' dim l as listview
' Readlist(l)
public Sub Readlist(l As ListView) As CSBuilder
Return FillList(file2log,l)
End Sub
'Same with custom file.log
public Sub FillList(logfile As String,l As ListView) As CSBuilder
Private tr As TextReader
Private csb As CSBuilder
Private oneline,s As String
Dim c As Int
csb.Initialize
tr.Initialize(File.OpenInput(File.DirDefaultExternal, logfile))
Dim lista = tr.ReadList As List
Dim i=lista.Size-1 As Int
Do While i >= 0
oneline=lista.Get(i)
i=i-1
If oneline.Contains("#") Then
s = oneline.SubString2(oneline.IndexOf("#")+1,oneline.Length)
c = oneline.SubString2(0,oneline.IndexOf("#"))
csb.Initialize
l.AddSingleLine(csb.Color(c).Append(s).Pop) ' diferent here
End If
Loop
csb.PopAll
Return csb
End Sub
'FILE FUNCTION -------------------------------------------------------------------------------------------
'WRITE AND DELETE FUNCTION -------------------------------------------------------------------------------------------
public Sub writelogfile(TEXT As String, c As Int,logfile As String)
Private tx As TextWriter
tx.Initialize(File.OpenOutput(File.DirDefaultExternal, logfile, True))
tx.WriteLine(c&"#"&TEXT&Chr(10)&Chr(13))
tx.Close
End Sub
public Sub delete_file( comodin As String)
Dim myfile As String
Dim allsdcard As List
allsdcard.Initialize
allsdcard.AddAll(File.ListFiles(File.DirDefaultExternal))
For i= allsdcard.Size-1 To 0 Step -1
myfile = allsdcard.Get(i)
If myfile.Contains(comodin) Then
File.delete(File.DirDefaultExternal,myfile )
End If
Next
End Sub
public Sub clean
Dim myfile As String
Dim allsdcard As List
allsdcard.Initialize
allsdcard.AddAll(File.ListFiles(File.DirDefaultExternal))
For i= allsdcard.Size-1 To 0 Step -1
myfile = allsdcard.Get(i)
Log("-----------"&myfile)
If myfile.Contains("activity.log") Then ' SAME AS file2log definition
File.delete(File.DirDefaultExternal,myfile )
End If
Next
're-create one
wlog("")
End Sub