Logo

AutoIt: Logging-Funktion

Sobald eure Scripte etwas umfangreicher werden, lohnt es sich, Status- bzw. Fehlermeldungen in eine Log-Datei zu schreiben. Ich habe dazu eine kleine Funktion für AutoIt geschrieben. Sie erwartet lediglich den zu speichernden Meldungstext. Optional kann auch der Zeitstempel deaktiviert oder ein alternativer Speicherpfad angegeben werden. Wie gehabt ist meine Funktion in englisch kommentiert und im Javadoc-Format dokumentiert.

#include <Date.au3>
 
; do stuff...
 
#comments-start
/**
 * Function for writing an user-defined status/error message into a log file
 * (Requires Date.au3)
 *
 * @author Björn Bastian (http://aufschnur.de)
 * @version 2014-01-27
 * @param	Message		the data to be written into the log file
 * @param	Filepath	an user-defined logfile path (optional, default = <scriptdir>\<scriptname>.log)
 * @param	Timestamp	a boolean trigger for adding the timestamp (optional, default = True)
 * @return	Result of logging as boolean (Success/Fail)
 */
#comments-end
Func WriteLog($Message, $Filepath = "", $Timestamp = True)
	; Use default logfile path if no user-defined is set
	If $Filepath == "" Then
		$Filepath = @ScriptDir & '\' & StringTrimRight(@ScriptName, 4) & ".log"
	EndIf
	; Add timestamp if desired
	If $Timestamp == True Then
		$Message = _Now() & ' - ' & $Message
	EndIf
	; Save data to log file
	Local $Logfile = FileOpen($Filepath, 1)
	If $Logfile <> -1 Then
		FileWriteLine($Logfile, $Message)
		FileClose($Logfile)
		Return True
	Else
		Return False
	EndIf
EndFunc   ;==>WriteLog

Hier ein kleines Beispiel zur Verwendung:

; Standardaufruf
WriteLog("Dies ist ein Logging-Eintrag")
; Angepasster Aufruf mit abweichendem Speicherpfad und deaktiviertem Zeitstempel
WriteLog("FEHLER: Es ist zu kalt für T-Shirt!", 'C:\logfile.txt', False)

 



Sag deine Meinung