Skip to content

Instantly share code, notes, and snippets.

@angely-dev
Last active September 2, 2021 15:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save angely-dev/ff04ec416358bd582a0e65befd536c74 to your computer and use it in GitHub Desktop.
Save angely-dev/ff04ec416358bd582a0e65befd536c74 to your computer and use it in GitHub Desktop.
Python logging current username
import coloredlogs # OPTIONAL (see end of the file)
import getpass
import logging
import logging.handlers
#
# The logger and the logging level
#
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
#
# Log to console and a rotating file
# (10MB per log file, max 5 log files)
#
ch = logging.StreamHandler()
fh = logging.handlers.RotatingFileHandler('mylogger.log', maxBytes=10*1024*1024, backupCount=5)
logger.addHandler(ch)
logger.addHandler(fh)
#
# Username filter
# (to add current username to logging format)
#
class UsernameFilter(logging.Filter):
def filter(self, record):
record.username = getpass.getuser()
return True
logger.addFilter(UsernameFilter())
#
# Logging format
#
fmt = '%(asctime)s %(username)-15s %(module)-15s %(levelname)-15s %(message)s'
datefmt = '%Y-%m-%d %H:%M:%S'
formatter = logging.Formatter(fmt, datefmt)
ch.setFormatter(formatter)
fh.setFormatter(formatter)
#
# OPTIONAL: colored logs for console only (requires coloredlogs package)
# (remove lines if not needed)
#
colored_formatter = coloredlogs.ColoredFormatter(fmt, datefmt)
ch.setFormatter(colored_formatter)
#
# Logging test
#
logger.debug('debug message')
logger.info('info message')
logger.warning('warn message')
logger.error('error message')
logger.critical('critical message')
@angely-dev
Copy link
Author

Output:

$ python3.7 logger.py 
2021-09-02 17:04:12 insideshell     logger          DEBUG           debug message
2021-09-02 17:04:12 insideshell     logger          INFO            info message
2021-09-02 17:04:12 insideshell     logger          WARNING         warn message
2021-09-02 17:04:12 insideshell     logger          ERROR           error message
2021-09-02 17:04:12 insideshell     logger          CRITICAL        critical message

$ cat mylogger.log 
2021-09-02 17:04:12 insideshell     logger          DEBUG           debug message
2021-09-02 17:04:12 insideshell     logger          INFO            info message
2021-09-02 17:04:12 insideshell     logger          WARNING         warn message
2021-09-02 17:04:12 insideshell     logger          ERROR           error message
2021-09-02 17:04:12 insideshell     logger          CRITICAL        critical message

Colored output (if needed):
coloredlogs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment