synchronized void startLogging() {
        if (fLoggingEnabled)
            return;
        //
        // If the first log file doesn't exist or its content length is 0,
        // then don't shit files. [V1.85]
        //
        if (!fFiles[0].exists() || readContent(0).length() == 0) 
            fFiles[0].delete();
        else {
            //
            // Shift files
            //
            fFiles[fNoOfLogFiles-1].delete();
            for (int i = fNoOfLogFiles - 2; i >= 0; i --)
                fFiles[i].renameTo(fFiles[i+1]);
		}
            
        //
        // Now create a FileWriter where
        //
        try { 
            fFileWriter = new FileWriter(fFiles[0]);
		} catch (FileNotFoundException e) {
			//
			// If the file name contains illegal characters, this exception will happen
			//
			return;
		} catch (IOException e) {
			System.out.println(e.toString()); 
		}
        
        String  timeStampHeader = fDateFormat.format(new Date()) + "\n";
        try {
            fFileWriter.write(timeStampHeader, 0, timeStampHeader.length());
            fFileWriter.flush();
		} catch (IOException e) {
			System.out.println(e.toString());
		}
        
        fLoggingEnabled = true;
	}