Tools: Fix script logging

Fix issue preventing scripts respecting --log_level argument, by adding
a non-default handler. Also, add script name to log output.

Change-Id: I100a5c29276d362dc38cd6c46f472e5991873293
Signed-off-by: Raef Coles <raef.coles@arm.com>
diff --git a/tools/modules/arg_utils.py b/tools/modules/arg_utils.py
index 80093a7..c0482b7 100644
--- a/tools/modules/arg_utils.py
+++ b/tools/modules/arg_utils.py
@@ -8,7 +8,7 @@
 import argparse
 
 import logging
-logger = logging.getLogger("TF-M")
+logger = logging.getLogger("TF-M.{}".format(__name__))
 
 from elftools.elf.elffile import ELFFile
 from file_loader import load_bytes_from_file
diff --git a/tools/modules/c_include.py b/tools/modules/c_include.py
index 636f31d..e3185dc 100644
--- a/tools/modules/c_include.py
+++ b/tools/modules/c_include.py
@@ -9,6 +9,9 @@
 import os
 import json
 
+import logging
+logger = logging.getLogger("TF-M.{}".format(__name__))
+
 def get_compile_command(compile_commands_file, c_file):
     with open(compile_commands_file, "rt") as f:
         compile_commands = json.load(f)
@@ -32,7 +35,8 @@
     parser.add_argument("--c_file", help="name of the c file to take", required=True)
     parser.add_argument("--log_level", help="log level", required=False, default="ERROR", choices=logging._levelToName.values())
     args = parser.parse_args()
-    logger.setLevel(args.log_level)
+    logging.getLogger("TF-M").setLevel(args.log_level)
+    logger.addHandler(logging.StreamHandler())
 
     print(get_compile_command(args.compile_commands_file, args.c_file))
     print(get_includes(args.compile_commands_file, args.c_file))
diff --git a/tools/modules/c_struct.py b/tools/modules/c_struct.py
index 08c0428..e88bebc 100644
--- a/tools/modules/c_struct.py
+++ b/tools/modules/c_struct.py
@@ -12,7 +12,7 @@
 import os
 
 import logging
-logger = logging.getLogger("TF-M")
+logger = logging.getLogger("TF-M.{}".format(__name__))
 
 from rich import inspect
 
@@ -643,7 +643,8 @@
     parser.add_argument("--c_file_to_mirror_includes_from", help="name of the c file to take", required=True)
     parser.add_argument("--log_level", help="log level", required=False, default="ERROR", choices=logging._levelToName.values())
     args = parser.parse_args()
-    logger.setLevel(args.log_level)
+    logging.getLogger("TF-M").setLevel(args.log_level)
+    logger.addHandler(logging.StreamHandler())
 
     includes = c_include.get_includes(args.compile_commands_file, args.c_file_to_mirror_includes_from)
     defines = c_include.get_defines(args.compile_commands_file, args.c_file_to_mirror_includes_from)
diff --git a/tools/modules/crypto_conversion_utils.py b/tools/modules/crypto_conversion_utils.py
index ddf1c79..4666ef1 100644
--- a/tools/modules/crypto_conversion_utils.py
+++ b/tools/modules/crypto_conversion_utils.py
@@ -9,7 +9,7 @@
 from cryptography.hazmat.primitives import hashes
 
 import logging
-logger = logging.getLogger("TF-M")
+logger = logging.getLogger("TF-M.{}".format(__name__))
 
 def convert_curve_define(define_name : str,
                          define_prefix : str = "",
diff --git a/tools/modules/encrypt_data.py b/tools/modules/encrypt_data.py
index e4eacc9..6508d9f 100644
--- a/tools/modules/encrypt_data.py
+++ b/tools/modules/encrypt_data.py
@@ -12,7 +12,7 @@
 
 import argparse
 import logging
-logger = logging.getLogger("TF-M")
+logger = logging.getLogger("TF-M.{}".format(__name__))
 from arg_utils import *
 import secrets
 
@@ -96,7 +96,9 @@
     add_arguments(parser, required=True)
 
     args = parser.parse_args()
-    logger.setLevel(args.log_level)
+    logging.getLogger("TF-M").setLevel(args.log_level)
+    logger.addHandler(logging.StreamHandler())
+
     config = parse_args(args)
     config |= parse_args_automatically(args, ["data"])
 
diff --git a/tools/modules/file_loader.py b/tools/modules/file_loader.py
index 249c93f..aa42140 100644
--- a/tools/modules/file_loader.py
+++ b/tools/modules/file_loader.py
@@ -7,7 +7,7 @@
 
 from cryptography.hazmat.primitives.serialization import load_pem_private_key, Encoding, PublicFormat
 import logging
-logger = logging.getLogger("TF-M")
+logger = logging.getLogger("TF-M.{}".format(__name__))
 from os.path import splitext, isfile
 
 def _load_bin(filepath):
diff --git a/tools/modules/key_derivation.py b/tools/modules/key_derivation.py
index 07fc7d0..1885492 100644
--- a/tools/modules/key_derivation.py
+++ b/tools/modules/key_derivation.py
@@ -15,7 +15,7 @@
 import struct
 import argparse
 import logging
-logger = logging.getLogger("TF-M")
+logger = logging.getLogger("TF-M.{}".format(__name__))
 
 
 def symmetric_kdf_sp800_108_cmac(input_key: bytes,
diff --git a/tools/modules/sign_data.py b/tools/modules/sign_data.py
index 7ef3cfb..7267348 100644
--- a/tools/modules/sign_data.py
+++ b/tools/modules/sign_data.py
@@ -17,7 +17,7 @@
 
 import argparse
 import logging
-logger = logging.getLogger("TF-M")
+logger = logging.getLogger("TF-M.{}".format(__name__))
 from arg_utils import *
 
 def _asn1_sig_to_raw(sig : bytes , curve : ec.EllipticCurve) -> bytes:
@@ -156,7 +156,8 @@
     add_arguments(parser, required=True)
 
     args = parser.parse_args()
-    logger.setLevel(args.log_level)
+    logging.getLogger("TF-M").setLevel(args.log_level)
+    logger.addHandler(logging.StreamHandler())
 
     config = parse_args(args)
     config |= parse_args_automatically(args, ["data"])
diff --git a/tools/modules/sign_then_encrypt_data.py b/tools/modules/sign_then_encrypt_data.py
index 7af18bb..fa77a82 100644
--- a/tools/modules/sign_then_encrypt_data.py
+++ b/tools/modules/sign_then_encrypt_data.py
@@ -9,7 +9,7 @@
 import argparse
 
 import logging
-logger = logging.getLogger("TF-M")
+logger = logging.getLogger("TF-M.{}".format(__name__))
 
 import arg_utils
 import sign_data
@@ -90,4 +90,5 @@
     parser.add_argument("--log_level", help="log level", required=False, default="ERROR", choices=logging._levelToName.values())
 
     args = parser.parse_args()
-    logger.setLevel(args.log_level)
+    logging.getLogger("TF-M").setLevel(args.log_level)
+    logger.addHandler(logging.StreamHandler())
diff --git a/tools/modules/struct_pack.py b/tools/modules/struct_pack.py
index fae1b0b..d701eb1 100644
--- a/tools/modules/struct_pack.py
+++ b/tools/modules/struct_pack.py
@@ -8,7 +8,7 @@
 import struct
 
 import logging
-logger = logging.getLogger("TF-M")
+logger = logging.getLogger("TF-M.{}".format(__name__))
 
 def struct_pack(objects, pad_to=0):
     defstring = "<"