PDA

Показать полную графическую версию : Логирование выполнения скрипта


Alkantel
29-08-2013, 21:02
Добрый вечер. Собственно сабж - какими средствами логировать выполнение скрипта?
В самой AutoIt'е я не нашел как это реализовать.

Creat0R
29-08-2013, 22:02
#include (http://autoit-script.ru/autoit3_docs/keywords.htm##include) <GUIConstantsEx.au3>
#include (http://autoit-script.ru/autoit3_docs/keywords.htm##include) <Date.au3>

Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $sLog_File = @ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) & '\Events.log'
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $hLog = _Log_Open($sLog_File)

$hGUI = GUICreate (http://autoit-script.ru/autoit3_docs/functions/GUICreate.htm)('Log Demo', 300, 200)
_Log_Write($hLog, 'GUI created')

$iButton = GUICtrlCreateButton (http://autoit-script.ru/autoit3_docs/functions/GUICtrlCreateButton.htm)("Button", 20, 40, 60, 20)
_Log_Write($hLog, 'Button created')

GUISetState (http://autoit-script.ru/autoit3_docs/functions/GUISetState.htm)(@SW_SHOW (http://autoit-script.ru/autoit3_docs/macros.htm#@sw_show), $hGUI)
_Log_Write($hLog, 'GUI shown')

While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) 1
Switch (http://www.autoitscript.com/autoit3/docs/keywords.htm#Switch) GUIGetMsg (http://autoit-script.ru/autoit3_docs/functions/GUIGetMsg.htm)()
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $GUI_EVENT_CLOSE
_Log_Write($hLog, 'Exit the program')
_Log_Close($hLog)
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $iButton
_Log_Write($hLog, 'Button (' & $iButton & ') clicked')
EndSwitch (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndSwitch)
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _Log_Open($sFile, $iRewrite = 0, $iUTF8 = 0)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iUTF8 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$iUTF8 = 128
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iRewrite Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$iRewrite = 2
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
$iRewrite = 1
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $hLog = FileOpen (http://autoit-script.ru/autoit3_docs/functions/FileOpen.htm)($sFile, $iRewrite + $iUTF8)

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $hLog = -1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) SetError (http://autoit-script.ru/autoit3_docs/functions/SetError.htm)(1, 0, 0)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

FileWrite (http://autoit-script.ru/autoit3_docs/functions/FileWrite.htm)($hLog, '-------------- Log started at ' & _NowCalc (http://autoit-script.ru/autoit3_docs/libfunctions/_nowcalc.htm)() & ' --------------' & @CRLF (http://autoit-script.ru/autoit3_docs/macros.htm#@crlf))

Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) $hLog
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _Log_Close(ByRef (http://www.autoitscript.com/autoit3/docs/keywords.htm#ByRef) $hLog)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) $hLog Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) SetError (http://autoit-script.ru/autoit3_docs/functions/SetError.htm)(1, 0, 0)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

FileWrite (http://autoit-script.ru/autoit3_docs/functions/FileWrite.htm)($hLog, '-------------- Log ended at ' & _NowCalc (http://autoit-script.ru/autoit3_docs/libfunctions/_nowcalc.htm)() & ' --------------' & @CRLF (http://autoit-script.ru/autoit3_docs/macros.htm#@crlf) & @CRLF (http://autoit-script.ru/autoit3_docs/macros.htm#@crlf))

FileClose (http://autoit-script.ru/autoit3_docs/functions/FileClose.htm)($hLog)
$hLog = 0
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _Log_Write($hLog, $sData)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) $hLog Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) SetError (http://autoit-script.ru/autoit3_docs/functions/SetError.htm)(1, 0, 0)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) FileWrite (http://autoit-script.ru/autoit3_docs/functions/FileWrite.htm)($hLog, _NowCalc (http://autoit-script.ru/autoit3_docs/libfunctions/_nowcalc.htm)() & '>> ' & StringReplace (http://autoit-script.ru/autoit3_docs/functions/StringReplace.htm)(StringStripCR (http://autoit-script.ru/autoit3_docs/functions/StringStripCR.htm)($sData), @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf), '\n') & @CRLF (http://autoit-script.ru/autoit3_docs/macros.htm#@crlf))
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

Alkantel
29-08-2013, 23:02
Спасибо. Еще бы понять что где =) Этот код можно в мой скрипт вставить, или Date.au3 и есть мой скрипт? Я еще плохо разбираюсь в AutoIt.

Creat0R
30-08-2013, 13:36
Этот код можно в мой скрипт вставить »
Это пример.

Date.au3 и есть мой скрипт? »
Это библиотека для функции времени и даты.

В свой скрипт нужно подключить библиотеку (в начало скрипта) и функции которые начинаются с Func (поместить в конец скрипта).
Далее вызывать функции как показано в примере.

Я еще плохо разбираюсь в AutoIt »
Тогда читай справку.




© OSzone.net 2001-2012