﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Logger Class</title><link>http://www.visualbasicscript.com/</link><description /><copyright>(c) VBScript Forum</copyright><ttl>30</ttl><item><title> RE: Logger Class (ebgreen)</title><description>  This : &lt;br&gt;  &amp;nbsp; &lt;br&gt;  myLog.LogLoc=DBExtracter.log  &lt;br&gt;   &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Is not valid &lt;br&gt;  &amp;nbsp; &lt;br&gt;  This is: &lt;br&gt;  &amp;nbsp; &lt;br&gt;  myLog.LogLoc="DBExtracter.log"  &lt;br&gt;   &lt;br&gt;   </description><link>http://www.visualbasicscript.com/fb.ashx?m=44669</link><pubDate>Wed, 21 Mar 2007 13:10:12 GMT</pubDate></item><item><title> RE: Logger Class (benbrazis)</title><description>  hmm..I will take a look. &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Because when I the following two commands: &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Set&amp;nbsp;myLog = New Log  &lt;br&gt;  myLog.LogLoc=DBExtracter.log  &lt;br&gt;   &lt;br&gt;  From the class file....Based on the code no matter what I put in the LogLoc property the below statement ends up not being NULL and and creates a logfile in c:\temp\ScriptName.log. IN this case when I set DBExtracter.log it will always create a log in the c:\temp\ScriptName.log and not DBExtractor.log. Am I missing something. &lt;br&gt;  &amp;nbsp; &lt;br&gt;  If strLogFile = "" Then &lt;br&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strLogFile = "C:\Temp\" &amp;amp; Split(WScript.ScriptName, ".")(0) &amp;amp; ".log" &lt;br&gt;  End If  &lt;br&gt;  &amp;nbsp; &lt;br&gt;  &amp;nbsp; &lt;br&gt;   </description><link>http://www.visualbasicscript.com/fb.ashx?m=44656</link><pubDate>Wed, 21 Mar 2007 11:42:27 GMT</pubDate></item><item><title> RE: Logger Class (ebgreen)</title><description>  I have not had time to update the class. To specify a file to log to you simply set the logloc property. &lt;br&gt;   </description><link>http://www.visualbasicscript.com/fb.ashx?m=44646</link><pubDate>Wed, 21 Mar 2007 10:34:11 GMT</pubDate></item><item><title> RE: Logger Class (benbrazis)</title><description>  This is a great logger class and I implemented. Works great...I have a question or two. &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Is this the latest logger class? I noticed you commented using xml as a config file for some of the properties. If you have not done so then I will look at doing one for myself. I see a need for a config file especially with the logging levels. It woul dbe nice to change config file versus the script. &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Also, not sure if you have also done or can provide guidance but I do not always log to the same log file for every script. I noticed when strLogFile is Null it uses default of where script is run.  &lt;br&gt;  &amp;nbsp; &lt;br&gt;  If you do the following: &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Set&amp;nbsp;myLog = New Log &lt;br&gt;  myLog.LogLoc=test &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Since the value is not null it will create the log file in the c:\TEMP. My question is how would I go about specifying the name of a log file in a script that tells the logger class to log to a specific file. &lt;br&gt;  &amp;nbsp; &lt;br&gt;  For example,  &lt;br&gt;  Set&amp;nbsp;myLog = New Log &lt;br&gt;  myLog.LogLoc=DBExtracter.log &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Override the default and set a name for a log of where the messages are written &lt;br&gt;  Great logger class and please let me know if you have updated or have any ideas with overriding the default log file and setting a name for a file. &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Thank You. &lt;br&gt;   </description><link>http://www.visualbasicscript.com/fb.ashx?m=44642</link><pubDate>Wed, 21 Mar 2007 10:23:00 GMT</pubDate></item><item><title> RE: Logger Class (ebgreen)</title><description>  Well there is a lot more to registering a COM object than just saving a script with a .wsc extension. I would suggest some research on that. </description><link>http://www.visualbasicscript.com/fb.ashx?m=44544</link><pubDate>Mon, 19 Mar 2007 14:12:48 GMT</pubDate></item><item><title> RE: Logger Class (jeffbrownjr)</title><description>  So I tried what you recommened and actually did that before...so it must be a WSF setup issue or the way I use it. So I took the exact code verbatim from post and copied to another script file with a WSC extension and tried to register. It throws errors. SO mayb there are some setup issues with my WSC or something that needs to be included other than the code you posted. &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Again any help is appreciated...sorry for bugging you on this. Thanks again! &lt;br&gt;   </description><link>http://www.visualbasicscript.com/fb.ashx?m=44543</link><pubDate>Mon, 19 Mar 2007 14:02:40 GMT</pubDate></item><item><title> RE: Logger Class (ebgreen)</title><description>  Here is an example of it's use: &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Set oLog = New Logger &lt;br&gt;  &amp;nbsp; &lt;br&gt;  oLog.LogLine "WARN", "This is a warning" &lt;br&gt;   </description><link>http://www.visualbasicscript.com/fb.ashx?m=44542</link><pubDate>Mon, 19 Mar 2007 12:51:51 GMT</pubDate></item><item><title> RE: Logger Class (ebgreen)</title><description>  Well, I use it just about exactly the way you are using it. Unless you have defined Warning somewhere else, this is not valid: &lt;br&gt;  &amp;nbsp; &lt;br&gt;  oLogger.LogLine Warning, "Test Message" &lt;br&gt;   </description><link>http://www.visualbasicscript.com/fb.ashx?m=44541</link><pubDate>Mon, 19 Mar 2007 12:50:49 GMT</pubDate></item><item><title> RE: Logger Class (jeffbrownjr)</title><description>  Not an ASP environment. This is a vbscript but with the extension of a WSF WHICH allows me to include the Logger class(I copied the code and put in a vbs file named Logger.vbs) I know you mentioned using as a WSC but when I copied the code it did not register. It threw errors. I figured since I am use to the WSF file to just include the file. Do you have any examples of how to use? &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Thanks again! &lt;br&gt;  JB &lt;br&gt;   </description><link>http://www.visualbasicscript.com/fb.ashx?m=44540</link><pubDate>Mon, 19 Mar 2007 12:47:15 GMT</pubDate></item><item><title> RE: Logger Class (ebgreen)</title><description>  I have to say that I do not use this in an ASP environment so there may be a permissions issue going on here. </description><link>http://www.visualbasicscript.com/fb.ashx?m=44539</link><pubDate>Mon, 19 Mar 2007 12:42:11 GMT</pubDate></item><item><title> RE: Logger Class (jeffbrownjr)</title><description>  I tried using the logger class and I am not having much luck. &lt;br&gt;  &amp;nbsp; &lt;br&gt;  Below is how I am using. DO you have any exmples. The log file is not getting created. I tried passing in bad arguements into a public function to see if would throw an error and it did. &lt;br&gt;  &amp;nbsp; &lt;br&gt;  &amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt; &lt;br&gt;  &amp;lt;package&amp;gt; &lt;br&gt;  &amp;nbsp;&amp;lt;job id="testLogger"&amp;gt; &lt;br&gt;  &amp;nbsp;&amp;nbsp;&amp;lt;?job error="false" debug="false" ?&amp;gt; &lt;br&gt;  &amp;nbsp;&amp;nbsp;&amp;lt;description&amp;gt; &lt;br&gt;  &amp;nbsp;&amp;nbsp;&amp;lt;/description&amp;gt; &lt;br&gt;  &amp;nbsp;&amp;nbsp;&amp;lt;script language="VBScript" src="C:\MyScripts\Scripts\Helpers\Logger.vbs"/&amp;gt; &lt;br&gt;  &amp;nbsp;&amp;nbsp;&amp;lt;script language="VBScript"&amp;gt; &lt;br&gt;  &amp;lt;![CDATA[ &lt;br&gt;  Dim Source &lt;br&gt;  Source=Split(WScript.ScriptName, ".")(0) &lt;br&gt;  Main()&amp;nbsp;'goto Main &lt;br&gt;   &lt;br&gt;  Sub Main()&amp;nbsp;'Start here &lt;br&gt;  '********************************************************* &lt;br&gt;  ' Name: Main &lt;br&gt;  ' Purpose:&amp;nbsp;Start of program &lt;br&gt;  ' Inputs:&amp;nbsp;N/A &lt;br&gt;  ' Returns:&amp;nbsp;N/A &lt;br&gt;  '********************************************************* &lt;br&gt;  Set oLogger = New Logger &lt;br&gt;  oLogger.LogBlankLine &lt;br&gt;  oLogger.LogLine Warning, "Test Message" &lt;br&gt;  oLogger.LogLine 2, "Test Message" &lt;br&gt;  'oLogger.LogLine 2&amp;nbsp;'Purposely pass in wrong # of arguments to see if the class is even working. Throws error as expected. &lt;br&gt;  End Sub &lt;br&gt;  ]]&amp;gt; &lt;br&gt;  &amp;nbsp;&amp;nbsp;&amp;lt;/script&amp;gt; &lt;br&gt;  &amp;nbsp;&amp;lt;/job&amp;gt; &lt;br&gt;  &amp;lt;/package&amp;gt; &lt;br&gt;   &lt;br&gt;   </description><link>http://www.visualbasicscript.com/fb.ashx?m=44538</link><pubDate>Mon, 19 Mar 2007 12:38:17 GMT</pubDate></item><item><title> Logger Class (ebgreen)</title><description>  If anyone has ever used any of the Log4N loggers, that is loosely what I bassed this class on. It will let you instantiate a logger object that will hopefully safely handle things like file opening and closing in a smart error free fashion. It let's you select one of 5 log levels: SEVERE, WARN, INFO, DEBUG, NOLOG. For the selscted level, any logline that is called with that level or higher importance will be logged. NOLOG is a special case in that if you set the log level to NOLOG, then nothing will ever be written to the log file. You can also set the indentation level and the character that is used for indentation. This allows for rudimentary formatting of the log. In our environment, we implement this as a wsc file and register it as a com object. Please provide any feedback that you feel is appropriate. &lt;br&gt;    &lt;br&gt;   Class Logger &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '===================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Class:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Logger &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Author:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ### &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Properties: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogLoc - Log file path and file name - Default:c:\temp\&amp;lt;ScriptName&amp;gt;.Log &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AppendMode - Whether or not to append to an existing log file. This defaults &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;to True. If you want it to be False, it must be set before &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;LogLoc is set. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FilterLevel - There are currently three valid filter levels. They are &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;"NOLOG", "SEVERE", "WARNING", "INFO", and "DEBUG". If a logline is sent to &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;the logger it will only be logged if its level is greater than or &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;equal to FilterLevel. Thus if FilterLevel is set to WARNING, only &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;lines with "WARNING" or "SEVERE" level will actually be logged. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Methods: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogLine(strLvl, strMsg) - Logs strMsg to the log file at LogLoc if strLvl is  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;greater than FilterLevel. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogBlankLine - Places a blank line in the log file. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogNoStamp(strLvl, strMsg) - Logs to the file according to the same level rules as &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;LogLine. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; To Do: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; - Allow AppendMode to be set anytime before the first LogLine call &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; - Allow the use of an xml based config file &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; - Allow for adding STDOUT in addition to logging &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Revision History: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 7/21/04 - RMD - Initial creation &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 7/22/04 - RMD - Changed the default location to use the script name &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 7/22/04 - RMD - Added SmartFileOpen to allow the construction of the path &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; to the log file dynamically. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 1/19/05 - RMD - Added the VerboseMode property to cause output to got to STDOUT as it is &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; looged if VerboseMode is set to True. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 3/11/05 - RMD - Added the NOLOG filter to give a means for turning off logging &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 7/29/05 - RMD - Changed the date/time stamp format to YYYY-MM-DD-hh:mm:ss &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 7/29/05 - RMD - Added the IndentLevel property to control the level of indentation &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 7/29/05 - RMD - Added the IndentChar property to set the character used to indent  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; default is vbTab &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '======================================================================================&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private strLogFile&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'This is the internal var for the path and name of the Log &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private bAppend&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Internal bool to control whether the log appends or Not &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private nFilterLevel&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Controls what level of messages are shown &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private dAllowableFilters&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Dictionary to hold the allowable logging levels &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private nAppendMode&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Integer to set the append mode when the file is actually opened &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private bFirstWrite&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Used to track the first time a message is logged for append &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private bVerbose&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Determines if info is output to STDOUT as it is logged default is False &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private nIndentLevel&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set the indentation level &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private strIndentChar&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Character used for Indentation defaults to vbTab &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Class constructor &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Sets default values for log file name, append mode, and log level. Also builds &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; the dictionary of allowable logging levels. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub Class_Initialize &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strLogFile = Replace(WScript.ScriptFullName, WScript.ScriptName, "") _ &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; Split(WScript.ScriptName, ".")(0) &amp;amp; ".log" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; bAppend = True &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nAppendMode = 8 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set dAllowableFilters = CreateObject("Scripting.Dictionary") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dAllowableFilters.Add "NOLOG", 4 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dAllowableFilters.Add "SEVERE", 3 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dAllowableFilters.Add "WARNING", 2 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dAllowableFilters.Add "INFO", 1 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dAllowableFilters.Add "DEBUG", 0 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nFilterLevel = dAllowableFilters("DEBUG") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; bFirstWrite = False &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; bVerbose = False &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nIndentLevel = 0 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strIndentChar = vbTab &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; IndentLevel Getter and Setter &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set the level of indentation &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Let IndentLevel(nLvl) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nIndentLevel = nlvl &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Get IndentLevel &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IndentLevel = nIndentLevel &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; IndentChar Getter and Setter &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set the character used for indentation default is vbTab &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Let IndentChar(strChar) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strIndentChar = strChar &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Get IndentChar &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IndentChar = strIndentChar &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; VerboseMode Getter and Setter &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Control the log path and filename &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Let VerboseMode(bMode) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If UCase(CStr(bMode)) = "TRUE" Or UCase(CStr(bMode)) = "FALSE" Then bVerbose = bMode &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Get VerboseMode &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; VerboseMode = bVerbose &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; LogLoc Getter and Setter &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Control the log path and filename &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Let LogLoc(strName) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oFSO, oFile &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ' Open the log file create it if it does not exist &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strLogFile = strName &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Get LogLoc &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogLoc = strLogFile &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; AppendMode Getter and Setter &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Control the append behavior for the log &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Let AppendMode(bMode) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; bAppend = bMode &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If bAppend Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nAppendMode = 8 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nAppendMode = 2 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Get AppendMode &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AppendMode = bAppend &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; FilterLevel &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Controls the level of logging to write to the log &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Let FilterLevel(strLvl) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nFilterLevel = dAllowableFilters("DEBUG") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If dAllowableFilters.Exists(UCase(strLvl)) Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nFilterLevel = dAllowableFilters(UCase(strLvl)) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property Get FilterLevel &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strLevel &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; For Each strLevel In dAllowableFilters.Keys() &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If nFilterLevel = dAllowableFilters(strLevel) Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FilterLevel = strLevel &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Next &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FilterLevel = "UNKNOWN" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Property &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; RotateLog &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Rotates the log file based on file size. The size in MB is passed to the  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; function. If the log file is bigger than this, the log file will be renamed &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; to the current name prepended with BU-. If this file already exists, the  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; existing one will be deleted. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub RotateLog(dblMB) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oFSO &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oFile &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strBUFile &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = CreateObject("Scripting.FileSystemObject") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFile = oFSO.GetFile(strLogFile) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Check for an existing bu file and delete if there &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'See if the current logfile is over the limit &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If (oFile.Size/(2^20)) &amp;lt; dblMB Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'WScript.Echo "File Size = " &amp;amp; oFile.Size/(2^20) &amp;amp; " which is smaller than " &amp;amp; dblMB &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFile = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogLine INF, "Rotating the logfile. The cureent log is greater than " &amp;amp; dblMB &amp;amp; "Mb" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strBUFile = oFile.ParentFolder &amp;amp; "\BU-" &amp;amp; oFile.Name &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'WScript.Echo strBUFile &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If oFSO.FileExists(strBUFile) Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogLine INF, "There is an existing backup log named " &amp;amp; strBUFile &amp;amp; ". It will be deleted" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oFSO.DeleteFile strBUFile, True &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Rename the existing log &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogLine INF, "Renaming the current log to " &amp;amp; strBUFile &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oFSO.MoveFile oFile.Path, strBUFile &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFile = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Log to the new Log &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogLine INF, "Starting new logfile after log rotation. The backup log is named " &amp;amp; strBUFile&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub &lt;br&gt;    &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; LogBlankLine &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Logs a blank line with no timestamp. This is really redundant because it Is &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; the same as .LogNoStamp "" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub LogBlankLine &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oFSO, oFile &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If Not nFilterLevel = 4 THen  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If strLogFile = "" Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strLogFile = "C:\Temp\" &amp;amp; Split(WScript.ScriptName, ".")(0) &amp;amp; ".log" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = CreateObject("Scripting.FileSystemObject") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFile = SmartOpenFile(strLogFile, nAppendMode, True) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If bVerbose Then WScript.Echo "" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oFile.WriteLine "" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oFile.Close &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFile = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If bFirstWrite = False Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'bAppend = True &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nAppendMode = 8 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; LogNoStamp &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Logs a line without prepending a date time stamp. Useful for multiline output &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; of a single chunk of information. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub LogNoStamp(strLvl, strMsg) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oFSO, oFile&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If strLogFile = "" Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strLogFile = "C:\Temp\" &amp;amp; Split(WScript.ScriptName, ".")(0) &amp;amp; ".log" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If Not dAllowableFilters.Exists(UCase(strLvl)) Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strLvl = "DEBUG" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If dAllowableFilters(UCase(strLvl)) &amp;gt;= nFilterLevel Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = CreateObject("Scripting.FileSystemObject") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFile = SmartOpenFile(strLogFile, nAppendMode, True) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = String(nIndentLevel, strIndentChar) &amp;amp; strMsg &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If bVerbose Then WScript.Echo strMsg &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oFile.WriteLine strMsg &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oFile.Close &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFile = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If bFirstWrite = False Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'bAppend = True &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nAppendMode = 8 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; LogLine &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Logs a line of text prepending a date/time stamp and the severity level of the &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; message. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub LogLine (strLvl, strMsg) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oFSO, oFile&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If strLogFile = "" Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strLogFile = "C:\Temp\" &amp;amp; Split(WScript.ScriptName, ".")(0) &amp;amp; ".log" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If Not dAllowableFilters.Exists(UCase(strLvl)) Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strLvl = "DEBUG" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If dAllowableFilters(UCase(strLvl)) &amp;gt;= nFilterLevel Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = CreateObject("Scripting.FileSystemObject") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFile = SmartOpenFile(strLogFile, nAppendMode, True) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = GetLogTime &amp;amp; "[" &amp;amp; UCase(strLvl) &amp;amp; "] - " _ &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; String(nIndentLevel, strIndentChar) &amp;amp; strMsg &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If bVerbose Then WScript.Echo strMsg &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oFile.WriteLine strMsg &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oFile.Close &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFile = Nothing &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If bFirstWrite = False Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'bAppend = True &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nAppendMode = 8 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; GetLogTime &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Returns a date/time stamp in the format YYYYMMddmmss &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Function GetLogTime() &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strNow &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strNow = Now() &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; GetLogTime = Year(strNow) &amp;amp; "-" &amp;amp; Pad(Month(strNow), 2, "0", True) &amp;amp; "-"&amp;nbsp; _ &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; Pad(Day(strNow), 2, "0", True) &amp;amp; "-" &amp;amp; Pad(Hour(strNow), 2, "0", True) _ &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; ":" &amp;amp; Pad(Minute(strNow), 2, "0", True) _ &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; ":" &amp;amp; Pad(Second(strNow), 2, "0", True) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Function 'GetLogTime() &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Pad &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Pads a string to a specified length using the specified character by appending &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; or prepending. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Function Pad(strText, nLen, strChar, bFront) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim nStartLen &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If strChar = "" Then  &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strChar = "0" &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nStartLen = Len(strText) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If Len(strText) &amp;gt;= nLen Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Pad = strText &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If bFront Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Pad = String(nLen - Len(strText), strChar) &amp;amp; strText &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Pad = strText &amp;amp; String(nLen - Len(strText), strChar) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Function &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; SmartOpenFile &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes: &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Opens a file building any directory structure that is required. &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; ' &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; '====================================================================================== &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Function SmartOpenFile(strPath, nMode, bCreate) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Creates the path to the file if bCreate = True &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim arrPath, i, oFSO, nErr, strErr &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set oFSO = CreateObject("Scripting.FileSystemObject") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; arrPath = Split(strPath, "\") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If UBound(arrPath) &amp;lt; 1 Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Invalid path &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set SmartOpenFile = Null &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Function &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If bCreate Then &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strPath = arrPath(0) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 1 To UBound(arrPath) - 1 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strPath = strPath &amp;amp; "\" &amp;amp; arrPath(i) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oFSO.CreateFolder(strPath) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nErr = Err.Number : strErr = Err.Description &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LogLine "DEBUG", "In SmartOpenFile creating " &amp;amp; strPath &amp;amp; " " &amp;amp; nErr _ &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; ") - " &amp;amp; strErr &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Goto 0 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Next &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; strPath = Join(arrPath, "\") &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set SmartOpenFile = oFSO.OpenTextFile(strPath, nMode, bCreate) &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Goto 0 &lt;br&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br&gt;   End Class </description><link>http://www.visualbasicscript.com/fb.ashx?m=24797</link><pubDate>Fri, 12 Aug 2005 06:59:13 GMT</pubDate></item></channel></rss>
