From 1d11dd227eeb4a7e415c8275393a7525840e31fd Mon Sep 17 00:00:00 2001
From: Shreya Malviya <shreya.malviya@gmail.com>
Date: Mon, 1 Aug 2022 16:51:35 +0530
Subject: [PATCH] Island: Simplify logic in get_log_file_path()

---
 .../cc/server_utils/island_logger.py          | 28 ++++---------------
 .../monkey_island/cc/services/initialize.py   |  2 +-
 2 files changed, 6 insertions(+), 24 deletions(-)

diff --git a/monkey/monkey_island/cc/server_utils/island_logger.py b/monkey/monkey_island/cc/server_utils/island_logger.py
index 06cb82fd8..31b2a7a98 100644
--- a/monkey/monkey_island/cc/server_utils/island_logger.py
+++ b/monkey/monkey_island/cc/server_utils/island_logger.py
@@ -2,7 +2,6 @@ import logging
 import logging.handlers
 import sys
 from pathlib import Path
-from typing import Optional
 
 ISLAND_LOG_FILENAME = "monkey_island.log"
 LOG_FORMAT = "%(asctime)s - %(levelname)s - %(filename)s:%(lineno)s - %(funcName)s() - %(message)s"
@@ -24,12 +23,16 @@ def setup_logging(data_dir: Path, log_level: str):
 
     formatter = _get_log_formatter()
 
-    log_file_path = data_dir / ISLAND_LOG_FILENAME
+    log_file_path = get_log_file_path(data_dir)
     _add_file_handler(logger, formatter, log_file_path)
 
     _add_console_handler(logger, formatter)
 
 
+def get_log_file_path(data_dir: Path) -> Path:
+    return data_dir / ISLAND_LOG_FILENAME
+
+
 def setup_default_failsafe_logging():
     logger = logging.getLogger()
     logger.setLevel(logging.DEBUG)
@@ -64,24 +67,3 @@ def reset_logger():
 
     for handler in logger.handlers:
         logger.removeHandler(handler)
-
-
-def get_log_file_path() -> Optional[Path]:
-    """
-    Finds the log file by finding the logger handlers and checking if one of them is a fileHandler
-    of any kind by checking if the handler has the property handler.baseFilename.
-
-    :return: Log file path
-    """
-
-    logger = logging.getLogger(__name__)
-
-    logger_handlers = logger.parent.handlers
-    for handler in logger_handlers:
-        if hasattr(handler, "baseFilename"):
-            logger.info("Log file found: {0}".format(handler.baseFilename))
-            log_file_path = handler.baseFilename
-            return Path(log_file_path)
-
-    logger.warning("No log file could be found, check logger config.")
-    return None
diff --git a/monkey/monkey_island/cc/services/initialize.py b/monkey/monkey_island/cc/services/initialize.py
index ff2872c7f..2d2678ac3 100644
--- a/monkey/monkey_island/cc/services/initialize.py
+++ b/monkey/monkey_island/cc/services/initialize.py
@@ -88,7 +88,7 @@ def _register_conventions(container: DIContainer, data_dir: Path):
         "default_ransomware_agent_configuration",
         DEFAULT_RANSOMWARE_AGENT_CONFIGURATION,
     )
-    container.register_convention(Path, "island_log_file_path", get_log_file_path())
+    container.register_convention(Path, "island_log_file_path", get_log_file_path(data_dir))
 
 
 def _register_repositories(container: DIContainer, data_dir: Path):