Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Логирование выполнения скрипта (http://forum.oszone.net/showthread.php?t=267107)

Alkantel 29-08-2013 21:02 2209853

Логирование выполнения скрипта
 
Добрый вечер. Собственно сабж - какими средствами логировать выполнение скрипта?
В самой AutoIt'е я не нашел как это реализовать.

Creat0R 29-08-2013 22:02 2209870

Код:

#include <GUIConstantsEx.au3>
#include <Date.au3>

Global $sLog_File = @ScriptDir & '\Events.log'
Global $hLog = _Log_Open($sLog_File)

$hGUI = GUICreate('Log Demo', 300, 200)
_Log_Write($hLog, 'GUI created')

$iButton = GUICtrlCreateButton("Button", 20, 40, 60, 20)
_Log_Write($hLog, 'Button created')

GUISetState(@SW_SHOW, $hGUI)
_Log_Write($hLog, 'GUI shown')

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            _Log_Write($hLog, 'Exit the program')
            _Log_Close($hLog)
            Exit
        Case $iButton
            _Log_Write($hLog, 'Button (' & $iButton & ') clicked')
    EndSwitch
WEnd

Func _Log_Open($sFile, $iRewrite = 0, $iUTF8 = 0)
    If $iUTF8 Then
        $iUTF8 = 128
    EndIf

    If $iRewrite Then
        $iRewrite = 2
    Else
        $iRewrite = 1
    EndIf

    Local $hLog = FileOpen($sFile, $iRewrite + $iUTF8)

    If $hLog = -1 Then
        Return SetError(1, 0, 0)
    EndIf

    FileWrite($hLog, '-------------- Log started at ' & _NowCalc() & ' --------------' & @CRLF)

    Return $hLog
EndFunc

Func _Log_Close(ByRef $hLog)
    If Not $hLog Then
        Return SetError(1, 0, 0)
    EndIf

    FileWrite($hLog, '-------------- Log ended at ' & _NowCalc() & ' --------------' & @CRLF & @CRLF)

    FileClose($hLog)
    $hLog = 0
EndFunc

Func _Log_Write($hLog, $sData)
    If Not $hLog Then
        Return SetError(1, 0, 0)
    EndIf

    Return FileWrite($hLog, _NowCalc() & '>> ' & StringReplace(StringStripCR($sData), @LF, '\n') & @CRLF)
EndFunc


Alkantel 29-08-2013 23:02 2209898

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

Creat0R 30-08-2013 13:36 2210086

Цитата:

Цитата Alkantel
Этот код можно в мой скрипт вставить »

Это пример.

Цитата:

Цитата Alkantel
Date.au3 и есть мой скрипт? »

Это библиотека для функции времени и даты.

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

Цитата:

Цитата Alkantel
Я еще плохо разбираюсь в AutoIt »

Тогда читай справку.


Время: 14:38.

Время: 14:38.
© OSzone.net 2001-