Skip to content

Instantly share code, notes, and snippets.

@ronshilo
Created December 8, 2018 06:21
Show Gist options
  • Save ronshilo/fefd8d56252c895755c0d9fdae47ed36 to your computer and use it in GitHub Desktop.
Save ronshilo/fefd8d56252c895755c0d9fdae47ed36 to your computer and use it in GitHub Desktop.
def get_logger(app_name:str = 'ron_test_app'):
fmt = '[%(asctime)s] [%(module)s] [%(levelname)s] %(message)s'
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
date = datetime.now()
log_file_dir_path ="/tmp/var/log/{}/{}/".format(app_name, date.strftime('%Y/%m-%d'))
log_file_name = '{}-{}.txt'.format(app_name, date.strftime('%Y%m%d-%H-%M-%S'))
pathlib.Path(log_file_dir_path).mkdir(parents=True, exist_ok=True)
fh = logging.FileHandler(log_file_dir_path+log_file_name)
fh.setLevel(logging.DEBUG)
formatter = logging.Formatter(fmt)
fh.setFormatter(formatter)
logger.addHandler(fh)
try:
import coloredlogs
field_styles = {'asctime': {'color': 'white'},
'hostname': {'color': 'white'},
'levelname': {'color': 'white'},
'name': {'color': 'white'},
'programname': {'color': 'white'},
'module':{'color': 'white'}}
level_styles = {'critical': {'color': 'magenta'},
'debug': {'color': 'blue'},
'error': {'color': 'red'},
'info': {'color': 'green' },
'notice': {'color': 'magenta'},
'spam': {'color': 'green', },
'success': {'color': 'green'},
'verbose': {'color': 'blue'},
'warning': {'color': 'yellow'}}
coloredlogs.install(fmt=fmt, level='DEBUG', field_styles=field_styles, level_styles=level_styles )
except ImportError:
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
ch.setFormatter(formatter)
logger.addHandler(ch)
logger.warning('failed to import coloredlogs try to run "pip install coloredlogs"')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment