Skip to content

Commit 8bf76a7

Browse files
acammack-r7msjenkins-r7
authored andcommitted
Land #9739, Add Python logging module support
1 parent 517b32c commit 8bf76a7

File tree

1 file changed

+35
-0
lines changed
  • lib/msf/core/modules/external/python/metasploit

1 file changed

+35
-0
lines changed

lib/msf/core/modules/external/python/metasploit/module.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,43 @@
11
import json
2+
import logging
23
import os
34
import sys
45

56

7+
class LogFormatter(logging.Formatter):
8+
def __init__(self, prefix, *args, **kwargs):
9+
super(LogFormatter, self).__init__(*args, **kwargs)
10+
self.prefix = prefix
11+
12+
def format(self, record):
13+
return self.prefix + record.msg
14+
15+
16+
class LogHandler(logging.Handler):
17+
def emit(self, record):
18+
level = 'debug'
19+
if record.levelno >= logging.ERROR:
20+
level = 'error'
21+
elif record.levelno >= logging.WARNING:
22+
level = 'warning'
23+
elif record.levelno >= logging.INFO:
24+
level = 'info'
25+
log(self.format(record), level)
26+
return
27+
28+
@classmethod
29+
def setup(cls, level=logging.DEBUG, name=None, msg_prefix=None):
30+
logger = logging.getLogger(name)
31+
handler = cls()
32+
33+
if level is not None:
34+
logger.setLevel(level)
35+
if msg_prefix is not None:
36+
handler.setFormatter(LogFormatter(msg_prefix))
37+
logger.addHandler(handler)
38+
return handler
39+
40+
641
def log(message, level='info'):
742
rpc_send({'jsonrpc': '2.0', 'method': 'message', 'params': {
843
'level': level,

0 commit comments

Comments
 (0)