Skip to content

Commit

Permalink
Land #9739, Add Python logging module support
Browse files Browse the repository at this point in the history
  • Loading branch information
acammack-r7 authored and msjenkins-r7 committed Mar 22, 2018
1 parent 517b32c commit 8bf76a7
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions lib/msf/core/modules/external/python/metasploit/module.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,43 @@
import json
import logging
import os
import sys


class LogFormatter(logging.Formatter):
def __init__(self, prefix, *args, **kwargs):
super(LogFormatter, self).__init__(*args, **kwargs)
self.prefix = prefix

def format(self, record):
return self.prefix + record.msg


class LogHandler(logging.Handler):
def emit(self, record):
level = 'debug'
if record.levelno >= logging.ERROR:
level = 'error'
elif record.levelno >= logging.WARNING:
level = 'warning'
elif record.levelno >= logging.INFO:
level = 'info'
log(self.format(record), level)
return

@classmethod
def setup(cls, level=logging.DEBUG, name=None, msg_prefix=None):
logger = logging.getLogger(name)
handler = cls()

if level is not None:
logger.setLevel(level)
if msg_prefix is not None:
handler.setFormatter(LogFormatter(msg_prefix))
logger.addHandler(handler)
return handler


def log(message, level='info'):
rpc_send({'jsonrpc': '2.0', 'method': 'message', 'params': {
'level': level,
Expand Down

0 comments on commit 8bf76a7

Please sign in to comment.