init log_mode

This commit is contained in:
zblurx
2023-02-17 14:20:16 +01:00
parent ea99236e39
commit 29ae75e6bf
3 changed files with 20 additions and 15 deletions
+2 -1
View File
@@ -16,7 +16,6 @@ from cme.context import Context
from concurrent.futures import ThreadPoolExecutor
from pprint import pformat
from decimal import Decimal
import time
import asyncio
import aioconsole
import functools
@@ -140,6 +139,8 @@ def main():
jitter = None
server_port_dict = {'http': 80, 'https': 443, 'smb': 445}
current_workspace = config.get('CME', 'workspace')
if config.get('CME', 'log_mode') != "False":
logger.setup_logfile()
if args.verbose:
setup_debug_logger()
+1
View File
@@ -3,6 +3,7 @@ workspace = default
last_used_db = smb
pwn3d_label = Pwn3d!
audit_mode =
log_mode = False
[BloodHound]
bh_enabled = False
+17 -14
View File
@@ -2,6 +2,7 @@
# -*- coding: utf-8 -*-
import logging
import os
import sys
import re
from cme.helpers.misc import called_from_cmd_args
@@ -33,6 +34,7 @@ class CMEAdapter(logging.LoggerAdapter):
def __init__(self, logger_name='CME', extra=None):
self.logger = logging.getLogger(logger_name)
self.extra = extra
self.outputfile = None
def process(self, msg, kwargs):
if self.extra is None:
@@ -107,6 +109,16 @@ class CMEAdapter(logging.LoggerAdapter):
out = CMEAdapter.message
CMEAdapter.message = ''
return out
def setup_logfile(self):
formatter = logging.Formatter("%(message)s")
self.outputfile = init_log_file()
open(self.outputfile, 'x')
fileHandler = logging.FileHandler(filename=self.outputfile, mode="a")
with fileHandler._open() as f:
f.write("> %s\n\n" % " ".join(sys.argv))
fileHandler.setFormatter(formatter)
self.logger.addHandler(fileHandler)
def setup_debug_logger():
debug_output_string = "{} %(message)s".format(colored('DEBUG', 'magenta', attrs=['bold']))
@@ -117,31 +129,22 @@ def setup_debug_logger():
root_logger = logging.getLogger()
root_logger.handlers = []
root_logger.addHandler(streamHandler)
#root_logger.addHandler(fileHandler)
root_logger.setLevel(logging.DEBUG)
return root_logger
def setup_logger(level=logging.INFO, log_to_file=False, log_prefix=None, logger_name='CME'):
def setup_logger(level=logging.INFO, logger_name='CME'):
formatter = logging.Formatter("%(message)s")
if log_to_file:
if not log_prefix:
log_prefix = 'log'
log_filename = '{}_{}.log'.format(log_prefix.replace('/', '_'), datetime.now().strftime('%Y-%m-%d'))
fileHandler = logging.FileHandler('./logs/{}'.format(log_filename))
fileHandler.setFormatter(formatter)
streamHandler = logging.StreamHandler(sys.stdout)
streamHandler.setFormatter(formatter)
cme_logger = logging.getLogger(logger_name)
cme_logger.propagate = False
cme_logger.addHandler(streamHandler)
if log_to_file:
cme_logger.addHandler(fileHandler)
cme_logger.setLevel(level)
return cme_logger
def init_log_file():
log_filename = os.path.join(os.path.expanduser('~/.cme'), 'logs','full-log_{}.log'.format(datetime.now().strftime('%Y-%m-%d_%H-%M-%S')))
return log_filename