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 pid = os.getpid()
24 return super().makeRecord(
25 name,
26 level,
27 fn,
28 lno,
29 f"Worker#{pid}: {msg}",
30 args,
31 exc_info,
32 func=func,
33 extra=extra,
34 sinfo=sinfo,
35 )
36
37
38 def setup_worker_logger(queue: mp.Queue) -> logging.Logger:
39 """
40 Creates and configures worker's logger
41 :return: Logger instance
42 """
43 logging.setLoggerClass(Logger)
44 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`. |
45 logger.setLevel(logging.DEBUG)
46
47 queue_handler = logging.handlers.QueueHandler(queue)
48 logger.addHandler(queue_handler)
49
50 return logger
51