diff --git a/etc/kytos/logging.ini.template b/etc/kytos/logging.ini.template index 9b560be24..8bcb10bec 100644 --- a/etc/kytos/logging.ini.template +++ b/etc/kytos/logging.ini.template @@ -5,7 +5,7 @@ keys: console,syslog keys: console,syslog [loggers] -keys: root,api_server,socket +keys: root,kytos,api_server,socket [formatter_syslog] format: %(name)s:%(levelname)s %(module)s:%(lineno)d: %(message)s @@ -27,6 +27,10 @@ formatter: syslog level: INFO handlers: syslog,console +[logger_kytos] +level: INFO +handlers: syslog,console + [logger_api_server] level: WARNING qualname: werkzeug diff --git a/kytos/core/api_server.py b/kytos/core/api_server.py index 03213567a..2ca055594 100644 --- a/kytos/core/api_server.py +++ b/kytos/core/api_server.py @@ -43,7 +43,7 @@ def __init__(self, app_name, listen='0.0.0.0', port=8181, self.napps_dir = napps_dir self.flask_dir = os.path.join(dirname, '../web-ui') - self.log = logging.getLogger('api_server') + self.log = logging.getLogger(__name__) self.listen = listen self.port = port diff --git a/kytos/core/atcp_server.py b/kytos/core/atcp_server.py index e57bf63c7..334703312 100644 --- a/kytos/core/atcp_server.py +++ b/kytos/core/atcp_server.py @@ -7,7 +7,7 @@ from kytos.core.connection import Connection from kytos.core.events import KytosEvent -LOG = logging.getLogger("atcp_server") +LOG = logging.getLogger(__name__) def exception_handler(loop, context): diff --git a/kytos/core/controller.py b/kytos/core/controller.py index ddad94ca1..542de744e 100644 --- a/kytos/core/controller.py +++ b/kytos/core/controller.py @@ -130,7 +130,7 @@ def enable_logs(self): """Register kytos log and enable the logs.""" LogManager.load_config_file(self.options.logging, self.options.debug) LogManager.enable_websocket(self.api_server.server) - self.log = logging.getLogger("controller") + self.log = logging.getLogger(__name__) def start(self, restart=False): """Create pidfile and call start_controller method.""" @@ -213,7 +213,7 @@ def _stop_loop(_): loop.stop() async def _run_api_server_thread(executor): - log = logging.getLogger('controller.api_server_thread') + log = logging.getLogger('kytos.core.controller.api_server_thread') log.debug('starting') # log.debug('creating tasks') loop = asyncio.get_event_loop() diff --git a/kytos/core/logs.py b/kytos/core/logs.py index 62e304f56..92cc4dc3a 100644 --- a/kytos/core/logs.py +++ b/kytos/core/logs.py @@ -45,6 +45,7 @@ def load_config_file(cls, config_file, debug='False'): def _set_debug_mode(cls, debug=False): if debug is True: cls._PARSER.set('logger_root', 'level', 'DEBUG') + cls._PARSER.set('logger_kytos', 'level', 'DEBUG') cls._PARSER.set('logger_api_server', 'level', 'DEBUG') LOG.info('Setting log configuration with debug mode.') @@ -141,7 +142,12 @@ class NAppLog: def __getattribute__(self, name): """Detect NApp ID and use its logger.""" napp_id = _detect_napp_id() - logger = getLogger(napp_id) + logger = getLogger(f"kytos.napps") + + # if napp_id is detected, get the napp logger. + if napp_id: + logger = logger.getChild(napp_id) + return logger.__getattribute__(name) diff --git a/tests/test_core/test_atcp_server.py b/tests/test_core/test_atcp_server.py index 8226e835d..ce74a084e 100644 --- a/tests/test_core/test_atcp_server.py +++ b/tests/test_core/test_atcp_server.py @@ -56,6 +56,10 @@ def test_exception_handler_oserror(self, caplog): exception_handler(self.loop, context2) assert caplog.record_tuples == [ - ("atcp_server", logging.INFO, "Socket timeout: 'unit_tests'"), - ("atcp_server", logging.INFO, "Socket closed: 'unit_tests'"), + ("kytos.core.atcp_server", + logging.INFO, + "Socket timeout: 'unit_tests'"), + ("kytos.core.atcp_server", + logging.INFO, + "Socket closed: 'unit_tests'"), ] diff --git a/tests/test_core/test_logs.py b/tests/test_core/test_logs.py index c673eae18..c964e9e86 100644 --- a/tests/test_core/test_logs.py +++ b/tests/test_core/test_logs.py @@ -223,13 +223,13 @@ def _set_filename(self, filename): def test_napp_id_detection(self): """Test NApp ID detection based on filename.""" self._set_filename('/napps/username/name/main.py') - expected_logger_name = 'username/name' + expected_logger_name = 'kytos.napps.username/name' napp_logger = NAppLog() self.assertEqual(expected_logger_name, napp_logger.name) def test_napp_id_not_found(self): """If NApp ID is not found, should use root logger.""" self._set_filename('not/an/expected/NApp/path.py') - root_logger = logging.getLogger() + root_logger = logging.getLogger("kytos.napps") napp_logger = NAppLog() self.assertEqual(root_logger.name, napp_logger.name)