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