1    	import logging
2    	import logging.handlers
3    	import multiprocessing as mp
4    	import os
5    	
6    	WORKER_LOGGER = "pcs_worker"
7    	
8    	
9    	class Logger(logging.Logger):
10   	    def makeRecord(  # type: ignore # noqa: PLR0913
11   	        self,
12   	        name,
13   	        level,
14   	        fn,
15   	        lno,
16   	        msg,
17   	        args,
18   	        exc_info,
19   	        func=None,
20   	        extra=None,
21   	        sinfo=None,
22   	    ) -> logging.LogRecord:
23   	        # pylint: disable=too-many-arguments
24   	        # pylint: disable=too-many-positional-arguments
25   	        pid = os.getpid()
26   	        return super().makeRecord(
27   	            name,
28   	            level,
29   	            fn,
30   	            lno,
31   	            f"Worker#{pid}: {msg}",
32   	            args,
33   	            exc_info,
34   	            func=func,
35   	            extra=extra,
36   	            sinfo=sinfo,
37   	        )
38   	
39   	
40   	def setup_worker_logger(queue: mp.Queue) -> logging.Logger:
41   	    """
42   	    Creates and configures worker's logger
43   	    :return: Logger instance
44   	    """
45   	    logging.setLoggerClass(Logger)
46   	    logger = logging.getLogger(WORKER_LOGGER)
CID (unavailable; MK=2badb54ae1da6c1523ca3d071cc2b6d6) (#1 of 1): Excessive log level (SIGMA.debug_logging_enabled):
(1) Event Sigma main event: The Python application has been configured to create excessive logs using a `DEBUG` log level. Excessive logging can expose sensitive information in log files.
(2) Event remediation: The log level of a production Python application should be set to `ERROR`, `WARN`, or `INFO`, instead of `DEBUG`.
47   	    logger.setLevel(logging.DEBUG)
48   	
49   	    queue_handler = logging.handlers.QueueHandler(queue)
50   	    logger.addHandler(queue_handler)
51   	
52   	    return logger
53