Enable logging to separate files

Related_prod: PRODX-54566
Change-Id: I1013cdf3e6e274efe09877fb448b5f4bc63d328c

Change-Id: Ia5c568c8afa5a7de28e316e0950369564ec116c3
diff --git a/rp_reporter/rp_reporter/batch_reporter.py b/rp_reporter/rp_reporter/batch_reporter.py
index 6dad778..45af68e 100755
--- a/rp_reporter/rp_reporter/batch_reporter.py
+++ b/rp_reporter/rp_reporter/batch_reporter.py
@@ -20,10 +20,24 @@
 from rp_reporter.report_from_xml import timestamp, Reporter
 
 from rp_reporter.settings import JENKINS_USER, JENKINS_PASSWORD
+from rp_reporter.settings import RP_LOGGING
 
 LOG = logging.getLogger("rp_reporter")
 
 
+def setup_logging(job: str | jj.Build):
+    if isinstance(job, str):
+        job = jj.Build(job)
+    if RP_LOGGING == 'DEBUG':
+        log_file_name = f'{job.name}-{job.number}.log'
+        log_file_path = Path(__file__).parent / log_file_name
+        LOG.warning(f"Logging {RP_LOGGING} level to file: {log_file_name}")
+        file_handler = logging.FileHandler(log_file_path, encoding='utf-8')
+        file_handler.setLevel(logging.DEBUG)
+        file_handler.setFormatter(logging.Formatter('%(asctime)s | %(levelname)s | %(message)s'))
+        logging.getLogger().addHandler(file_handler)
+
+
 def grep(text: List, patterns: List, context_size: int, blacklist: List[str] = None):
     """Works like `grep -rn`
     returns found text with line before and after
@@ -494,6 +508,7 @@
         k, v = tag.split(":", 1)
         tags_dict[k] = v
 
+    setup_logging(job=job_url)
     upload_job(job=job_url,
                tags=tags_dict,
                suite_per_job=True)