diff --git a/pyjapc/_japc.py b/pyjapc/_japc.py index 11173823dac2aa0315748310188e14a5023f2681..98e2dbbdcf37c6b535c73462090bab6abc0e8f8b 100644 --- a/pyjapc/_japc.py +++ b/pyjapc/_japc.py @@ -214,14 +214,27 @@ class PyJapc: def _setup_jvm(self, log_level): """Startup the JVM and the connection to Python (JPype).""" - mgr = cmmnbuild_dep_manager.Manager("pyjapc", logging.WARNING) + mgr = cmmnbuild_dep_manager.Manager("pyjapc", lvl=log_level) mgr.start_jpype_jvm() log4j = jp.JPackage('org').apache.log4j if log4j.BasicConfigurator is not None and callable(log4j.BasicConfigurator.configure): log4j.BasicConfigurator.configure() if log_level is not None: - log4j.Logger.getRootLogger().setLevel(log4j.Level.toLevel(log_level)) + known_levels = { + logging.DEBUG: log4j.Level.DEBUG, + logging.INFO: log4j.Level.INFO, + logging.WARNING: log4j.Level.WARN, + logging.ERROR: log4j.Level.ERROR, + logging.CRITICAL: log4j.Level.FATAL, + } + # Map Python log levels (10, 20, ...) to Java levels (10000, 20000, ...) + # but fall back to just passing the given level if we don't know what to do with it. + if log_level in known_levels: + java_level = known_levels[log_level] + else: + java_level = log4j.Level.toLevel(java_level) + log4j.Logger.getRootLogger().setLevel(java_level) else: log4j.Logger.getRootLogger().setLevel(log4j.Level.WARN)