Skip to content

Instantly share code, notes, and snippets.

@JesterXL
Created June 6, 2017 16:51
Show Gist options
  • Save JesterXL/ad36d4c51f712075a4c5bad7d0232573 to your computer and use it in GitHub Desktop.
Save JesterXL/ad36d4c51f712075a4c5bad7d0232573 to your computer and use it in GitHub Desktop.
Python Logging examples
import logging
logger = logging.getLogger('name of app')
logger.info('whatever')
logging.basicConfig(stream=sys.stderr)
import logging
logging.basicConfig(filename=‘scheduler.log’,level=logging.DEBUG)
logging.warning(‘Scheduler log started @ ’ + strftime(“%Y-%m-%d %H:%M:%S”, gmtime()))
def job1():
logging.warning(‘Job started... ’ + strftime(“%Y-%m-%d %H:%M:%S”, gmtime()))
import argparse
import logging
def main(parsed_args):
log_levels = (logging.WARN, logging.INFO, logging.DEBUG,)
logging.basicConfig(level=log_levels[parsed_args.verbose])
logging.info('Starting processing topic {0}'.format(parsed_args.topic))
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('-v', '--verbose', action='count', default=0,
help='Output debug logging, more v\'s=more detail')
parser.add_argument('-s', '--server', help='Hostname:port to connect to', default=None)
parser.add_argument('topic', help='Topic to validate values on')
args = parser.parse_args()
main(args)
def create_logger(logger_name: str, log_path: str) -> logging.logger:
"""Create a logging object for STDOUT and FILE to avoid print statements.
Args:
logger_name (str): name for the logger used in getLogger()
log_path (str): file path for log outputs, assumes it exists.
Returns:
logging.logger
"""
log_formatter = logging.Formatter(("%(asctime)s [%(threadName)-12.12s]"
"[%(levelname)-5.5s] %(message)s"))
logger = logging.getLogger(logger_name)
file_handler = logging.FileHandler(log_path)
file_handler.setFormatter(log_formatter)
logger.addHandler(file_handler)
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setFormatter(log_formatter)
logger.addHandler(console_handler)
# adjust as needed
logger.setLevel(logging.DEBUG)
return logger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment