START > APPLESCRIPT > Praktische Handler > Logfile schreiben

Logfile schreiben

 

Um ein Logfile per Applescript zu schreiben, kann man verschiedene Methoden anwenden. Im ersten Beispiel wird mit "Applescript pur" und dem write-Befehl von Applescript in eine Datei auf dem Desktop geschrieben. Hierbei wird Datum und Uhrzeit jeweils mit gelogt. Der Dateiname kann nach Wunsch über die Variable LogFileName angepasst werden. Der Text, der gelogt werden soll, wird einfach über den Handler übergeben. Ein Aufruf sieht also so aus: Write2DeskLog("Ein beliebiger Text")

-- write a string to file "Script.log" on desktop

-- :::::::::::::::::::::::::::::::::  hohabadu.de  :::::::::::::::::::::::::::::::::
on Write2DeskLog(txt)
   set LogFileName to "Script.log"
   set logfile to (open for access file ((path to "desk" as string) & LogFileName) with write permission)
   try
      set Eintrag to short date string of (current date) & " - " & time string of (current date) & return & (txt as text) & return & return
      write Eintrag to logfile starting at eof
      close access logfile
      return Eintrag
   on error
      close access logfile
      return "Error writing to logfile"
   end try
end Write2DeskLog

 Im Scripteditor öffnen

Mit diesem Handler lassen sich beispielsweise alle evtl. auftretenden Script-Fehler oder auch bestimmte Variablen und Ereignisse des Scripts dauerhaft in eine Datei loggen. Das kann sehr praktisch bei der Fehlersuche oder z.B. bei der Kontrolle eines unbeaufsichtigt laufenden Scripts sein oder aber einfach um bestimmte Dinge zu protokollieren.


Das zweite Beispiel nutzt die shell (die command-line von Mac OS X) um in die Logdateien zu schreiben. Zusätzlich wird mit dem Handler log2console() in die Datei console.log des Users geschrieben, so dass man die entsprechenden Einträge über das Programm "Konsole.app" (zu finden unter "Dienstprogramme) einsehen und verfolgen kann. In diese Datei senden viele Programme ihre Statusmeldungen bzw. Fehler, warum sollte man sie also nicht selbst für die eigenen Applescripts nutzen? Der Pfad und Namen für das Logfile im zweiten Handler log2error() ist natürlich den eigenen Bedürfnissen entsprechend anzupassen:

-- write a string to users "console.log" and to file "/Volumes/Macintosh HD/zLOGs/ScriptErrorLog.txt"

-- :::::::::::::::::::::::::::::::::  hohabadu.de  :::::::::::::::::::::::::::::::::
on log2console(t)
   set DateAndTime to do shell script "date \"+%Y-%m-%d %H:%M:%S Uhr  -  \""
   do shell script "echo " & quoted form of (DateAndTime & t) & " >>/dev/console"
   log2error(t)
end log2console

on log2error(t)
   set DateAndTime to do shell script "date \"+%Y-%m-%d %H:%M:%S Uhr  -  \""
   do shell script "echo " & quoted form of (DateAndTime & t) & " >> " & quoted form of "/Volumes/Macintosh HD/zLOGs/ScriptErrorLog.txt"
end log2error

 Im Scripteditor öffnen

...die console.log des Benutzers findet man übrigens unter /Library/Logs/Console/UID/console.log, wobei UID die UserID des Benutzers wiederspiegelt (501 oder 502 oder ...).




Powered By CMSimple Design By NMuD Top