Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/ invest-robot-contest_TradingCompetition2022-main/logger/LoggerFactory.py
5925 views
1
from logger.TechLogger import TechLogger
2
from logger.BusinessLogger import BusinessLogger
3
from datetime import datetime
4
5
6
class LoggerFactory:
7
BUSINESS_LOGGER = 'BUSINESS_LOGGER'
8
TECH_LOGGER = 'TECH_LOGGER'
9
10
@classmethod
11
def get_logger(cls, logger_type):
12
logger = None
13
file_name = None
14
match logger_type:
15
case cls.BUSINESS_LOGGER:
16
logger = BusinessLogger().get_logger_instance()
17
file_name = "Business_Log_" + str(datetime.now())
18
case cls.TECH_LOGGER:
19
logger = TechLogger().get_logger_instance()
20
file_name = "Tech_Log_" + str(datetime.now())
21
if logger and logger.file_name is None:
22
logger.file_name = file_name
23
return logger
24
25
@classmethod
26
def get_business_logger_instance(cls):
27
return cls.get_logger(cls.BUSINESS_LOGGER)
28
29
@classmethod
30
def get_tech_logger_instance(cls):
31
return cls.get_logger(cls.TECH_LOGGER)
32
33
34
def tech_log(fn):
35
""" Decorator for log before and after fn """
36
37
def logger(*args, **kwargs):
38
log: TechLogger = LoggerFactory.get_tech_logger_instance()
39
log.log_before_method(fn, *args, **kwargs)
40
fn(*args, **kwargs)
41
log.log_after_method(fn)
42
return logger
43
44
45