Hammad Posted January 17, 2012 Share Posted January 17, 2012 Hi, I am trying to implement error and debug logging using FileWrite function by calling it from my logging functions. Although it is able to create a log file, I always find it empty for some reason. If I call FileWrite from my main script, it functions well. Can anyone help me out in this regard? Here is my code: This part is in a custom UDF file I include in my scripts. Func _DbgPrint($DbgMsg="undef",$FuncName="undef") if $DbgMsg = "undef" Then ConsoleWrite("Undefined Error!" & @CRLF) FileWrite($LogDir & $DbgLogFile,$scriptNameNoExt & ": Undefined Breakpoint!" & @CRLF) Else ConsoleWrite("in " & $FuncName & ": " & $DbgMsg & @CRLF) $filewritestatus=FileWrite($LogDir & $DbgLogFile,$scriptNameNoExt & ": in " & $FuncName & ": " & $DbgMsg & @CRLF) ConsoleWrite($filewritestatus&@CRLF) EndIf EndFunc Func _ErrorNQuit($ErrMsg="undef",$FuncName="undef") if $ErrMsg = "undef" Then ConsoleWrite("Undefined Error!" & @CRLF) FileWrite($LogDir & $LogFile,$scriptNameNoExt & ": Undefined Error!" & @CRLF) Else ConsoleWrite("in "& $FuncName & ": " & $ErrMsg & @CRLF) FileWrite($LogDir & $LogFile,$scriptNameNoExt & ": in" & $FuncName & ": " & $ErrMsg & @CRLF) EndIf ProcessClose($AppProcess) Call("_StopMSNetMonitor") Call("_unConfigDataPlane") Exit EndFunc This part is where I call these functions from my script: Call("_DbgPrint","hello","world") sleep(10000) All the variables have the expected values. FileWrite() also returns 1 (success) when it is run. If any more info is required, please let me know. Thanks. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted January 17, 2012 Moderators Share Posted January 17, 2012 Hammad,If I call FileWrite from my main script, it functions well.That sounds like a scope problem. You are checking the data you are writing, have you also checked that the file path and name are correct within the function? Do $LogDir, $DbgLogFile and $LogFile have Global scope? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Hammad Posted January 17, 2012 Author Share Posted January 17, 2012 Melba,$LogDir, $DbgLogFile and $LogFile are defined with global scope in a separate myDEF.au3 file include at the start of myUDF.au3The fact that the file is created in the right directory with the right name is also a verfication of that. However, that file is empty at the end of the script runs, as well as just after the function is called (I pause the script to check that). Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted January 17, 2012 Moderators Share Posted January 17, 2012 Hammad, I thought that might be too easy a solution! Could you post the whole script and your own includes so I can take a look? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Hammad Posted January 17, 2012 Author Share Posted January 17, 2012 This is myDEF.au3 Global $opt_N="defaulttest" Global $opt_R="default" Global $TestCaseName=$opt_N Global $logDir="" Global $pcapDir="" Global $timeStamp= @MON & @MDAY & @YEAR &"-" & @HOUR & @MIN & @SEC Global $scriptNameNoExt=StringSplit(@ScriptName,".") Global $logFile=$scriptNameNoExt[1] & "-ERR" & ".txt" Global $DbgLogFile=$scriptNameNoExt[1] & "-DBG" & ".txt" Global $AppName="" Global $AppProcess="" Global $AppRuleName="unclassified" Global $PingInfraction=0 This is myUDF.au3 expandcollapse popup#include <array.au3> #include <myDEF.au3> Func _CreateFolder() If not FileExists($LogDir) Then ;DirRemove($logDir,1) DirCreate($LogDir) EndIf Func _ErrorNQuit($ErrMsg="undef",$FuncName="undef") if $ErrMsg = "undef" Then ConsoleWrite("Undefined Error!" & @CRLF) FileWrite($LogDir & $LogFile,$scriptNameNoExt & ": Undefined Error!" & @CRLF) Else ConsoleWrite("in "& $FuncName & ": " & $ErrMsg & @CRLF) FileWrite($LogDir & $LogFile,$scriptNameNoExt & ": in" & $FuncName & ": " & $ErrMsg & @CRLF) EndIf Exit EndFunc Func _DbgPrint($DbgMsg="undef",$FuncName="undef") if $DbgMsg = "undef" Then ConsoleWrite("Undefined Error!" & @CRLF) FileWrite($LogDir & $DbgLogFile,$scriptNameNoExt & ": Undefined Breakpoint!" & @CRLF) Else ConsoleWrite("in " & $FuncName & ": " & $DbgMsg & @CRLF) $filewritestatus=FileWrite($LogDir & $DbgLogFile,$scriptNameNoExt & ": in " & $FuncName & ": " & $DbgMsg & @CRLF) ConsoleWrite($filewritestatus&@CRLF) EndIf EndFunc Func _CommonStartup($FallbackBit=1) Call("_ReadCmdLineParams", ":N:R") $TestCaseName=$opt_N $Scenario=$opt_R $logDir= @ScriptDir & "..output" & $TestCaseName & "logs" $pcapDir=@ScriptDir & "..output" & $TestCaseName & "pcaps" & $AppRuleName & "" Call("_DbgPrint","starting connectivity test","_CommonStartup") AdlibRegister("_ConnectivityTest",60000) Call("_DbgPrint","creating output folders","_CommonStartup") Call("_CreateFolder") Call("_DbgPrint","moving mouse out of the way","_CommonStartup") MouseMove(0,0,5) ;avoid any mouse-over conflics Call("_DbgPrint","_CommonStartup completed successfully","_CommonStartup") EndFunc Func _CommonEnd() AdlibUnRegister("_ConnectivityTest") EndFunc Func _ConnectivityTest() If Not Ping("8.8.8.8") Then $PingInfraction=$PingInfraction+1 if $PingInfraction = 6 Then Call("_ErrorNQuit","Connectivity test failed","_ConnectivityTest") EndIf Else $PingInfraction=0 EndIf EndFunc And this is the script that I am writing using functions from myUDF: #include<myUDF.au3> Call("_CommonStartup",1) Call("_DbgPrint","hello","world") sleep(10000) Call("_CommonEnd") Link to comment Share on other sites More sharing options...
water Posted January 17, 2012 Share Posted January 17, 2012 Are the two variables $LogDir & $LogFile set correctly? I mean has $LogDir a "" at the end or does $LogFile start with a ""? My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted January 17, 2012 Moderators Share Posted January 17, 2012 Hammad,You need to use $scriptNameNoExt[1] in functions _DbgPrint and _ErrorNQuit - at the moment you use the whole $scriptNameNoExt array and so Autoit refuses to print anything. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Hammad Posted January 17, 2012 Author Share Posted January 17, 2012 Thanks, Melba That took care of the problem. (stupid me) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now