mirror of
				https://github.com/liberatedsystems/openCom-Companion.git
				synced 2025-07-08 05:07:21 +02:00 
			
		
		
		
	Squelch excessive kivy/jnius logging on Android. Live toggle debug logging for RNS and Sideband.
This commit is contained in:
		
							parent
							
								
									f531b2ecaa
								
							
						
					
					
						commit
						d87a58a51b
					
				@ -5,7 +5,7 @@ __variant__ = "beta"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
import argparse
 | 
					import argparse
 | 
				
			||||||
parser = argparse.ArgumentParser(description="Reticulum Network Stack Daemon")
 | 
					parser = argparse.ArgumentParser(description="Sideband LXMF Client")
 | 
				
			||||||
parser.add_argument("-v", "--verbose", action='store_true', default=False, help="increase logging verbosity")
 | 
					parser.add_argument("-v", "--verbose", action='store_true', default=False, help="increase logging verbosity")
 | 
				
			||||||
parser.add_argument("--version", action="version", version="sideband {version}".format(version=__version__))
 | 
					parser.add_argument("--version", action="version", version="sideband {version}".format(version=__version__))
 | 
				
			||||||
args = parser.parse_args()
 | 
					args = parser.parse_args()
 | 
				
			||||||
@ -21,6 +21,27 @@ import threading
 | 
				
			|||||||
import RNS.vendor.umsgpack as msgpack
 | 
					import RNS.vendor.umsgpack as msgpack
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from kivy.logger import Logger, LOG_LEVELS
 | 
					from kivy.logger import Logger, LOG_LEVELS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Squelch excessive method signature logging
 | 
				
			||||||
 | 
					class redirect_log():
 | 
				
			||||||
 | 
					    def isEnabledFor(self, arg):
 | 
				
			||||||
 | 
					        return False
 | 
				
			||||||
 | 
					    def debug(self, arg):
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					    def trace(self, arg):
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					    def warning(self, arg):
 | 
				
			||||||
 | 
					        RNS.log("Kivy error: "+str(arg), RNS.LOG_WARNING)
 | 
				
			||||||
 | 
					    def critical(self, arg):
 | 
				
			||||||
 | 
					        RNS.log("Kivy error: "+str(arg), RNS.LOG_ERROR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if RNS.vendor.platformutils.get_platform() == "android":
 | 
				
			||||||
 | 
					    import jnius.reflect
 | 
				
			||||||
 | 
					    def mod(method, name, signature):
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					    jnius.reflect.log_method = mod
 | 
				
			||||||
 | 
					    jnius.reflect.log = redirect_log()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __debug_build__ or args.verbose:
 | 
					if __debug_build__ or args.verbose:
 | 
				
			||||||
    Logger.setLevel(LOG_LEVELS["debug"])
 | 
					    Logger.setLevel(LOG_LEVELS["debug"])
 | 
				
			||||||
else:
 | 
					else:
 | 
				
			||||||
@ -52,18 +73,6 @@ from mapview import CustomMapMarker
 | 
				
			|||||||
from mapview.mbtsource import MBTilesMapSource
 | 
					from mapview.mbtsource import MBTilesMapSource
 | 
				
			||||||
from mapview.source import MapSource
 | 
					from mapview.source import MapSource
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class redirect_log():
 | 
					 | 
				
			||||||
    def isEnabledFor(self, arg):
 | 
					 | 
				
			||||||
        return False
 | 
					 | 
				
			||||||
    def debug(self, arg):
 | 
					 | 
				
			||||||
        pass
 | 
					 | 
				
			||||||
    def trace(self, arg):
 | 
					 | 
				
			||||||
        pass
 | 
					 | 
				
			||||||
    def warning(self, arg):
 | 
					 | 
				
			||||||
        RNS.log("Kivy error: "+str(arg), RNS.LOG_WARNING)
 | 
					 | 
				
			||||||
    def critical(self, arg):
 | 
					 | 
				
			||||||
        RNS.log("Kivy error: "+str(arg), RNS.LOG_ERROR)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import kivy.core.image
 | 
					import kivy.core.image
 | 
				
			||||||
kivy.core.image.Logger = redirect_log()
 | 
					kivy.core.image.Logger = redirect_log()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1388,6 +1397,7 @@ class SidebandApp(MDApp):
 | 
				
			|||||||
            def save_debug(sender=None, event=None):
 | 
					            def save_debug(sender=None, event=None):
 | 
				
			||||||
                self.sideband.config["debug"] = self.settings_screen.ids.settings_debug.active
 | 
					                self.sideband.config["debug"] = self.settings_screen.ids.settings_debug.active
 | 
				
			||||||
                self.sideband.save_configuration()
 | 
					                self.sideband.save_configuration()
 | 
				
			||||||
 | 
					                self.sideband._reticulum_log_debug(self.sideband.config["debug"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            def save_print_command(sender=None, event=None):
 | 
					            def save_print_command(sender=None, event=None):
 | 
				
			||||||
                if not sender.focus:
 | 
					                if not sender.focus:
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,20 @@ else:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
if RNS.vendor.platformutils.get_platform() == "android":
 | 
					if RNS.vendor.platformutils.get_platform() == "android":
 | 
				
			||||||
    from jnius import autoclass, cast
 | 
					    from jnius import autoclass, cast
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Squelch excessive method signature logging
 | 
				
			||||||
 | 
					    import jnius.reflect
 | 
				
			||||||
 | 
					    class redirect_log():
 | 
				
			||||||
 | 
					        def isEnabledFor(self, arg):
 | 
				
			||||||
 | 
					            return False
 | 
				
			||||||
 | 
					        def debug(self, arg):
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					    def mod(method, name, signature):
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					    jnius.reflect.log_method = mod
 | 
				
			||||||
 | 
					    jnius.reflect.log = redirect_log()
 | 
				
			||||||
 | 
					    ############################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    from android import python_act
 | 
					    from android import python_act
 | 
				
			||||||
    android_api_version = autoclass('android.os.Build$VERSION').SDK_INT
 | 
					    android_api_version = autoclass('android.os.Build$VERSION').SDK_INT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -18,13 +18,18 @@ from .sense import Telemeter
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
if RNS.vendor.platformutils.get_platform() == "android":
 | 
					if RNS.vendor.platformutils.get_platform() == "android":
 | 
				
			||||||
    from jnius import autoclass, cast
 | 
					    from jnius import autoclass, cast
 | 
				
			||||||
 | 
					    # Squelch excessive method signature logging
 | 
				
			||||||
    import jnius.reflect
 | 
					    import jnius.reflect
 | 
				
			||||||
    class redirect_log():
 | 
					    class redirect_log():
 | 
				
			||||||
        def isEnabledFor(self, arg):
 | 
					        def isEnabledFor(self, arg):
 | 
				
			||||||
            return False
 | 
					            return False
 | 
				
			||||||
        def debug(self, arg):
 | 
					        def debug(self, arg):
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
 | 
					    def mod(method, name, signature):
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					    jnius.reflect.log_method = mod
 | 
				
			||||||
    jnius.reflect.log = redirect_log()
 | 
					    jnius.reflect.log = redirect_log()
 | 
				
			||||||
 | 
					    ############################################
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class PropagationNodeDetector():
 | 
					class PropagationNodeDetector():
 | 
				
			||||||
@ -852,9 +857,6 @@ class SidebandCore():
 | 
				
			|||||||
        return self.getstate("app.active_conversation")
 | 
					        return self.getstate("app.active_conversation")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def setstate(self, prop, val):
 | 
					    def setstate(self, prop, val):
 | 
				
			||||||
        # TODO: remove
 | 
					 | 
				
			||||||
        # us = time.time()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if not RNS.vendor.platformutils.is_android():
 | 
					        if not RNS.vendor.platformutils.is_android():
 | 
				
			||||||
            self.getstate_cache[prop] = val
 | 
					            self.getstate_cache[prop] = val
 | 
				
			||||||
            self._db_setstate(prop, val)
 | 
					            self._db_setstate(prop, val)
 | 
				
			||||||
@ -868,13 +870,6 @@ class SidebandCore():
 | 
				
			|||||||
                        self.rpc_connection = multiprocessing.connection.Client(self.rpc_addr, authkey=self.rpc_key)
 | 
					                        self.rpc_connection = multiprocessing.connection.Client(self.rpc_addr, authkey=self.rpc_key)
 | 
				
			||||||
                    self.rpc_connection.send({"setstate": (prop, val)})
 | 
					                    self.rpc_connection.send({"setstate": (prop, val)})
 | 
				
			||||||
                    response = self.rpc_connection.recv()
 | 
					                    response = self.rpc_connection.recv()
 | 
				
			||||||
                    
 | 
					 | 
				
			||||||
                    # TODO: Remove
 | 
					 | 
				
			||||||
                    # if response:
 | 
					 | 
				
			||||||
                    #     RNS.log("RPC setstate SUCCESS for "+str(prop)+"="+str(val)+" in "+RNS.prettytime(time.time()-us), RNS.LOG_WARNING)
 | 
					 | 
				
			||||||
                    # else:
 | 
					 | 
				
			||||||
                    #     RNS.log("RPC setstate FAIL for "+str(prop)+"="+str(val)+" in "+RNS.prettytime(time.time()-us), RNS.LOG_WARNING)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    return response
 | 
					                    return response
 | 
				
			||||||
                except Exception as e:
 | 
					                except Exception as e:
 | 
				
			||||||
                    RNS.log("Error while setting state over RPC: "+str(e), RNS.LOG_DEBUG)
 | 
					                    RNS.log("Error while setting state over RPC: "+str(e), RNS.LOG_DEBUG)
 | 
				
			||||||
@ -899,6 +894,27 @@ class SidebandCore():
 | 
				
			|||||||
                    RNS.log("Error while setting telemetry over RPC: "+str(e), RNS.LOG_DEBUG)
 | 
					                    RNS.log("Error while setting telemetry over RPC: "+str(e), RNS.LOG_DEBUG)
 | 
				
			||||||
                    return False
 | 
					                    return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def service_rpc_set_debug(self, debug):
 | 
				
			||||||
 | 
					        if not RNS.vendor.platformutils.is_android():
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            if self.is_service:
 | 
				
			||||||
 | 
					                if debug:
 | 
				
			||||||
 | 
					                    RNS.loglevel = 7
 | 
				
			||||||
 | 
					                else:
 | 
				
			||||||
 | 
					                    RNS.loglevel = 2                
 | 
				
			||||||
 | 
					                return True
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                try:
 | 
				
			||||||
 | 
					                    if self.rpc_connection == None:
 | 
				
			||||||
 | 
					                        self.rpc_connection = multiprocessing.connection.Client(self.rpc_addr, authkey=self.rpc_key)
 | 
				
			||||||
 | 
					                    self.rpc_connection.send({"set_debug": debug})
 | 
				
			||||||
 | 
					                    response = self.rpc_connection.recv()
 | 
				
			||||||
 | 
					                    return response
 | 
				
			||||||
 | 
					                except Exception as e:
 | 
				
			||||||
 | 
					                    RNS.log("Error while setting log level over RPC: "+str(e), RNS.LOG_DEBUG)
 | 
				
			||||||
 | 
					                    return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def getstate(self, prop, allow_cache=False):
 | 
					    def getstate(self, prop, allow_cache=False):
 | 
				
			||||||
        # TODO: remove
 | 
					        # TODO: remove
 | 
				
			||||||
        # us = time.time()
 | 
					        # us = time.time()
 | 
				
			||||||
@ -960,6 +976,10 @@ class SidebandCore():
 | 
				
			|||||||
                                    self.latest_telemetry = t
 | 
					                                    self.latest_telemetry = t
 | 
				
			||||||
                                    self.latest_packed_telemetry = p
 | 
					                                    self.latest_packed_telemetry = p
 | 
				
			||||||
                                    connection.send(True)
 | 
					                                    connection.send(True)
 | 
				
			||||||
 | 
					                                elif "set_debug" in call:
 | 
				
			||||||
 | 
					                                    self.service_rpc_set_debug(call["set_debug"])
 | 
				
			||||||
 | 
					                                    connection.send(True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        except Exception as e:
 | 
					                        except Exception as e:
 | 
				
			||||||
                            RNS.log("Error on client RPC connection: "+str(e), RNS.LOG_ERROR)
 | 
					                            RNS.log("Error on client RPC connection: "+str(e), RNS.LOG_ERROR)
 | 
				
			||||||
                            connection.close()
 | 
					                            connection.close()
 | 
				
			||||||
@ -2198,6 +2218,16 @@ class SidebandCore():
 | 
				
			|||||||
            self.interface_local = None
 | 
					            self.interface_local = None
 | 
				
			||||||
            self.interface_local_adding = False
 | 
					            self.interface_local_adding = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def _reticulum_log_debug(self, debug=False):
 | 
				
			||||||
 | 
					        self.log_verbose = debug
 | 
				
			||||||
 | 
					        if self.log_verbose:
 | 
				
			||||||
 | 
					            selected_level = 7
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            selected_level = 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        RNS.loglevel = selected_level
 | 
				
			||||||
 | 
					        if self.is_client:
 | 
				
			||||||
 | 
					            self.service_rpc_set_debug(debug)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __start_jobs_immediate(self):
 | 
					    def __start_jobs_immediate(self):
 | 
				
			||||||
        if self.log_verbose:
 | 
					        if self.log_verbose:
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user