 
 internal let ModuleLogName  = "TraceLog"
 
-private let LogTag    = "LOG_TAG_"
-private let LogPrefix = "LOG_PREFIX_"
-private let LogAll    = "LOG_ALL"
-
-internal enum ConfigurationError : Error {
-    case invalidLogLevel(String)
-}
-
 ///
 /// Internal data
 ///
 internal class Configuration  {
+    
+    enum ConfigurationError : Error {
+        case invalidLogLevel(String)
+    }
+    
+    private static let logTag    = "LOG_TAG_"
+    private static let logPrefix = "LOG_PREFIX_"
+    private static let logAll    = "LOG_ALL"
     
     var globalLogLevel = LogLevel.info
     

        } else {
            
            /// Determine the prefixes log level if available
            if let prefixLogLevel = prefixLogLevelForTag(tag) {
                level = prefixLogLevel
            }
        }
        return level;
    }
    
    fileprivate func prefixLogLevelForTag(_ tag: String) -> LogLevel? {
        for (prefix, logLevel) in self.loggedPrefixes {
            if prefix.hasPrefix(prefix) {
                return logLevel
            }
        }
        return nil;
    }
}


            let upperCaseVariable        = variable.uppercased()
            let upperCaselogLevelString  = value.uppercased()
            
            if upperCaseVariable.hasPrefix(Configuration.logAll) {
                
                if let level = upperCaselogLevelString.asLogLevel() {
                    self.globalLogLevel = level
                } else {
                    errors.append(.invalidLogLevel("Variable '\(upperCaseVariable)' has an invalid logLevel of '\(upperCaselogLevelString)'. '\(Configuration.logAll)' will be set to \(self.globalLogLevel)."))
                }
                
            } else if upperCaseVariable.hasPrefix(Configuration.logPrefix) {
                
                if let level = upperCaselogLevelString.asLogLevel() {
                    ///
                    /// Note: in order to allow for case sensitive tag prefix names, we use the variable instead of the uppercase version.
                    ///
                    if let logLevelScopeRange = variable.range(of: Configuration.logPrefix) {
                        let logLevelScope = variable.substring(from: logLevelScopeRange.upperBound)
                        
                        self.loggedPrefixes[logLevelScope] =  level
