def __SetLogPreference(self): """ Set correct log level for each log category according to preferences. """ logFiles = Log.GetCategories() for name in logFiles: # Get level from preferences. logLevel = int(self.preferences.GetPreference(name)) fLevels = self.GetFileLogLevels() sLevels = self.GetStreamLogLevels() # Level for files if fLevels: fLevels.SetLevel(logLevel, name) # Level for streams if sLevels: sLevels.SetLevel(logLevel, name)
def __init__(self): ''' Initiate preferences class. Simple client configuration parameters are saved in preferences dictionary. More complicated data structures are added as separate class objects and are saved to separate config file, for example client profile. ''' self.preferences = {} # Default preferences self.default = { self.SHUTDOWN_MEDIA: 0, self.RECONNECT: 1, self.MAX_RECONNECT: 3, self.RECONNECT_TIMEOUT: 10, self.STARTUP_MEDIA: 1, self.NODE_BUILTIN: "1", self.NODE_URL: "", self.NODE_CONFIG_TYPE: NodeConfigDescription.SYSTEM, self.NODE_CONFIG: "default", self.MULTICAST: 1, self.BEACON: 1, self.LOG_TO_CMD: 0, self.ENABLE_DISPLAY: 1, self.ENABLE_VIDEO: 1, self.ENABLE_AUDIO: 1, self.DISPLAY_MODE: self.EXITS, self.BRIDGE_REGISTRY: "http://www.accessgrid.org/registry/peers.txt|http://www.ap-accessgrid.org/registry/peers.txt", self.PROXY_ENABLED: 0, self.PROXY_HOST: "", self.PROXY_PORT: "", self.PROXY_USERNAME: "", self.PROXY_PASSWORD: "", self.PROXY_AUTH_KEY: "stR1ng 1s SixTEN", self.PROXY_AUTH_ENABLED: 0, self.MULTICAST_DETECT_HOST: "233.4.200.18", self.MULTICAST_DETECT_PORT: 10002, self.BRIDGE_PING_UPDATE_DELAY: 600, self.ORDER_BRIDGES_BY_PING: 1, self.VENUESERVER_URLS: "https://vv3.mcs.anl.gov:8000/VenueServer" } # Set default log levels to Log.DEBUG. # Keys used for log preferences # are the same as listed in Log.py. # Save log levels as # Log.VenueClient=Log.DEBUG. categories = Log.GetCategories() for category in categories: self.default[category] = Log.DEBUG self.default[Log.RTPSensor] = Log.CRITICAL # Use the already implemented parts of # client profile. Save client profile # to separate profile file. self.profile = ClientProfile() # Use the bridge cache object. Save bridges # to separate file self.bridgeCache = BridgeCache() # Use already implemented parts of # node service. Default node service # config will get saved using the node # service. self.nodeConfigs = [] self.config = UserConfig.instance(initIfNeeded=0) self.__bridges = {} # Stores current bridges to display in UI self.LoadPreferences() self.venueClient = None