Example #1
0
 /// <summary>
 /// Set the logging level in the registry
 /// </summary>
 /// <param name="val">The maximum file size</param>
 /// <returns>true if the logging level was saved in the registry</returns>
 private bool setLogLevel(ENLogLevel val)
 {
     try
     {
         Microsoft.Win32.RegistryKey rkQBWC = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(Defaults.REG_KEY);
         rkQBWC.SetValue(LogLevelKey, val.ToString(), RegistryValueKind.String);
         rkQBWC.Close();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Example #2
0
        /// <summary>
        /// Obtains the logging level from the registry.  If an entry is not found then the default
        /// level is saved to the registry.   If an error is detected in any of this,  the default
        /// level is returned
        /// </summary>
        /// <returns>The current logging level</returns>
        private ENLogLevel getLogLevel()
        {
            ENLogLevel retValue = Defaults.DEFAULT_LOG_LEVEL;

            try
            {
                // Attempt to get the LogLevel from the registry.  If the key cannot be found there,
                // create a new key, setting the value to the default value.
                Microsoft.Win32.RegistryKey rkQBWC = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(Defaults.REG_KEY, false);

                if (rkQBWC == null)
                {
                    setLogLevel(retValue);
                    return(retValue);
                }

                string retVal = (string)rkQBWC.GetValue(LogLevelKey);
                rkQBWC.Close();

                switch (retVal)
                {
                case "NONE":
                    retValue = ENLogLevel.NONE;
                    break;

                case "CRITICAL":
                    retValue = ENLogLevel.CRITICAL;
                    break;

                case "ERROR":
                    retValue = ENLogLevel.ERROR;
                    break;

                case "VERBOSE":
                    retValue = ENLogLevel.VERBOSE;
                    break;

                default:
                    retValue = Defaults.DEFAULT_LOG_LEVEL;
                    setLogLevel(retValue);
                    break;
                }
            }
            catch
            {
                // Don't do anything
            }

            return(retValue);
        }
Example #3
0
        private void InitializeLog()
        {
            string dir = Path.GetDirectoryName(_logFileName);

            // Create directory and file, as required...
            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }
            if (File.Exists(_logFileName))
            {
                _str = File.AppendText(_logFileName);
            }
            else
            {
                _str = File.CreateText(_logFileName);
            }

            // Add some initialization string to the log file...
            _str.WriteLine("\r\n\r\nLog file initialized at " + nowLong());
            _str.WriteLine("Timestamp format used: YYYYMMDD.HH:MM:SS UTC");
            string messaging = "";

            // Initialize the logging level and the maximum size...
            _logLevel       = getLogLevel();
            _maxLogFileSize = getMaxLogFileSize(true);

            _str.WriteLine("\"" + _productName + "\" version: " + _productVersion + ", has been initialized with its logging " +
                           "status to _logLevel = " + _logLevel.ToString() + ".\n" + messaging);
            _str.WriteLine("");
            _str.Close();

            if (_maxLogFileSize <= 1024)
            {
                //If the logging size is pathetically small, it is equivalent to _logLevel = NONE
                if (_logLevel != ENLogLevel.NONE)
                {
                    log("[INFO]", "Logger.checkLogFileSize()", "Log file size only " + _maxLogFileSize + " bytes. Setting LogLevel to NONE for no logging.");
                    setLogLevel(ENLogLevel.NONE);
                }
            }
        }