[Tutor] Create Logging module
Alan Gauld
alan.gauld at yahoo.co.uk
Thu Aug 1 12:13:41 EDT 2019
On 01/08/2019 10:11, Sinardy Xing wrote:
> ---- start here---
>
> import logging
>
> ..snip...
> from functools import wraps
>
> def logme(func_to_log):
> import logging
You don't need the import, it's already done in the first line.
> #Check log level within understanable parameter, set to INFO if is not
> permitable value
> def check_log_level(logleveltocheck):
This looks like an indentation error?
It should be at the same level as the import statement.
> if any(logleveltocheck.upper() in lf for lf in ['DEBUG',
> 'INFO', 'WARNING', 'ERROR', 'CRITICAL']):
> return logleveltocheck.upper()
Are you sure that is what you want? It seems very complicated unless you
are allowing the user to supply an abbreviated form. Otherwise
if logleveltocheck.upper() in ['DEBUG', 'INFO', 'WARNING',
'ERROR', 'CRITICAL']:
return logleveltocheck.upper()
might be easier?
> else
> return 'INFO'
>
> log_file_level='INFO' #check_log_level('info')
> log_console_level='INFO' #check_log_level('info')
>
> #root level
> logger.setLevel('INFO')
I'm not sure what this is supposed to be doing!
> formatter = logging.Formatter('%(asctime)s :: %(name)s :: %(levelname)s
> :: %(message)s')
>
> #Read log file from parameter
> logfile='mylogfile.log'
> file_handler = logging.FileHandler(logfile)
> file_handler.setLevel(log_file_level)
> file_handler.setFormatter(formatter)
>
> stream_handler = logging.StreamHandler()
> stream_handler.setLevel(log_console_level)
> stream_handler.setFormatter(formatter)
>
> logger.addHandler()
> logger.addHandler(stream_handler)
>
> #this wraps is to make sure we are returning func_to_log instead of
> wrapper
> @wraps(func_to_log)
> def wrapper(*args, **kwargs):
> logger.info('Ran with args: {}, and kwargs: {}'.format(args,
> kwargs))
> return func_to_log(*args, **kwargs)
>
> return wrapper
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
More information about the Tutor
mailing list