diff --git a/inventory_provider/router_interfaces.py b/inventory_provider/router_interfaces.py
index b52e936081f11469b73e24423ac7d66feaccdc74..4cd91b84396dd5014adc654dccf8bebe06534fc3 100644
--- a/inventory_provider/router_interfaces.py
+++ b/inventory_provider/router_interfaces.py
@@ -11,6 +11,12 @@ import paramiko
 from pysnmp.hlapi import nextCmd, SnmpEngine, CommunityData, \
         UdpTransportTarget, ContextData, ObjectType, ObjectIdentity
 
+
+SNMP_LOGGER_NAME = "snmp-logger"
+THREADING_LOGGER_NAME = "threading-logger"
+JUNIPER_LOGGER_NAME = "juniper-logger"
+DATABASE_LOGGER_NAME = "database-logger"
+
 CONFIG_SCHEMA = {
     "$schema": "http://json-schema.org/draft-07/schema#",
     "type": "object",
@@ -57,6 +63,8 @@ def walk(agent_hostname, community, base_oid):
     :return:
     """
 
+    snmp_logger = logging.getLogger(SNMP_LOGGER_NAME)
+
     from pysnmp.smi import builder, view, compiler, rfc1902
     mibBuilder = builder.MibBuilder()
     mibViewController = view.MibViewController(mibBuilder)
@@ -64,7 +72,8 @@ def walk(agent_hostname, community, base_oid):
     # Pre-load MIB modules we expect to work with
     mibBuilder.loadModules('SNMPv2-MIB', 'SNMP-COMMUNITY-MIB', 'RFC1213-MIB')
 
-    # logging.debug("walking %s: %s" % (agent_hostname, base_oid))
+    snmp_logger.debug("walking %s: %s" % (agent_hostname, base_oid))
+
     for (engineErrorIndication,
          pduErrorIndication,
          errorIndex,
@@ -159,12 +168,13 @@ def cursor(cnx):
 
 
 def _db_test(db, router):
+    database_logger = logging.getLogger(DATABASE_LOGGER_NAME)
     with cursor(db) as crs:
-        logging.debug("_db_test: %r" % router)
+        database_logger.debug("_db_test: %r" % router)
         query = "SELECT absid FROM routers WHERE hostname = %s"
         crs.execute(query, (router['hostname'],))
         for (absid,) in crs:
-            logging.debug("absid: %r" % absid)
+            database_logger.debug("absid: %r" % absid)
 
 
 def _v6address_oid2str(dotted_decimal):
@@ -239,40 +249,45 @@ def ssh_connection(router, ssh_params):
 
 
 def exec_router_commands_json(router, ssh_params, commands):
+    juniper_logger = logging.getLogger(JUNIPER_LOGGER_NAME)
     with ssh_connection(router, ssh_params) as ssh:
 
         _, stdout, _ = ssh.exec_command("set cli screen-length 0")
         assert stdout.channel.recv_exit_status() == 0
 
         for c in commands:
-            logging.debug("command: '%s'" % (c + " | display json"))
+            juniper_logger.debug("command: '%s'" % (c + " | display json"))
             _, stdout, _ = ssh.exec_command(c + " | display json")
             assert stdout.channel.recv_exit_status() == 0
             # TODO: error handling
             output = stdout.read()
             if output:
-                logging.debug("%r output: [%d] %r" % (router, len(output), output[:20]))
+                juniper_logger.debug("%r output: [%d] %r" % (router, len(output), output[:20]))
                 yield json.loads(output)
             else:
-                logging.debug("%r output empty")
+                juniper_logger.debug("%r output empty")
                 yield {}
 
 
 def get_router_interfaces_q(router, q):
-    logging.debug("[ENTER>>] get_router_interfaces_q: %r" % router)
+    threading_logger = logging.getLogger(THREADING_LOGGER_NAME)
+    threading_logger.debug("[ENTER>>] get_router_interfaces_q: %r" % router)
     q.put(list(get_router_interfaces(router)))
-    logging.debug("[<<EXIT]  get_router_interfaces_q: %r" % router)
+    threading_logger.debug("[<<EXIT]  get_router_interfaces_q: %r" % router)
 
 
 def exec_router_commands_json_q(router, ssh_params, commands, q):
-    logging.debug("[ENTER>>] exec_router_commands_q: %r" % router)
+    threading_logger = logging.getLogger(THREADING_LOGGER_NAME)
+    threading_logger.debug("[ENTER>>] exec_router_commands_q: %r" % router)
     q.put(list(exec_router_commands_json(router, ssh_params, commands)))
-    logging.debug("[<<EXIT] exec_router_commands_q: %r" % router)
+    threading_logger.debug("[<<EXIT] exec_router_commands_q: %r" % router)
 
 
 def get_router_details(router, params, q):
 
-    logging.debug("get_router_details: %r" % router)
+    threading_logger = logging.getLogger(THREADING_LOGGER_NAME)
+
+    threading_logger.debug("[ENTER>>]get_router_details: %r" % router)
 
     commands = [
         'show configuration routing-instances IAS protocols bgp',
@@ -292,22 +307,27 @@ def get_router_details(router, params, q):
     commands_proc = Process(target=exec_router_commands_json_q, args=(router, params["ssh"], commands, commands_proc_queue))
     commands_proc.start()
 
-    logging.debug("waiting for commands result: %r" % router)
+    threading_logger.debug("waiting for commands result: %r" % router)
     command_output = commands_proc_queue.get()
     assert len(command_output) == len(commands)
     result = dict(zip(["bgp", "vrr", "interfaces"], command_output))
     commands_proc.join()
-    logging.debug("... got commands result & joined: %r" % router)
+    threading_logger.debug("... got commands result & joined: %r" % router)
 
-    logging.debug("waiting for snmp ifc results: %r" % router)
+    threading_logger.debug("waiting for snmp ifc results: %r" % router)
     result["snmp-interfaces"] = snmpifc_proc_queue.get()
     snmpifc_proc.join()
-    logging.debug("... got snmp ifc result & joined: %r" % router)
+    threading_logger.debug("... got snmp ifc result & joined: %r" % router)
 
     q.put(result)
 
+    threading_logger.debug("[<<EXIT]get_router_details: %r" % router)
+
 
 def load_network_details(config):
+
+    threading_logger = logging.getLogger(THREADING_LOGGER_NAME)
+
     with open("routers_community.conf") as f:
         routers = list(load_routers(f))
 
@@ -320,10 +340,10 @@ def load_network_details(config):
 
     result = {}
     for p in processes:
-        logging.debug("waiting for get_router_details result: %r" % p["router"])
+        threading_logger.debug("waiting for get_router_details result: %r" % p["router"])
         result[p["router"]["hostname"]] = p["queue"].get()
         p["process"].join()
-        logging.debug("got result and joined get_router_details proc: %r" % p["router"])
+        threading_logger.debug("got result and joined get_router_details proc: %r" % p["router"])
 
     return result
 
@@ -346,6 +366,10 @@ def cli(config):
 
 
 if __name__ == "__main__":
-    logging.basicConfig(level=logging.DEBUG)
+    logging.basicConfig(level=logging.WARNING)
+    logging.getLogger(SNMP_LOGGER_NAME).setLevel(logging.DEBUG)
+    logging.getLogger(THREADING_LOGGER_NAME).setLevel(logging.INFO)
+    logging.getLogger(JUNIPER_LOGGER_NAME).setLevel(logging.DEBUG)
+    logging.getLogger(DATABASE_LOGGER_NAME).setLevel(logging.DEBUG)
     cli()