The beginning of the program is to import statements followed by the Python logging module. The logging module provides a more robust way to track and log the program status than simple print statements. In this part of the program, we configure it as follows:
from xml.dom import minidom import json import urllib.request import urllib.parse import urllib.error import math import time import logging import numpy as np import srtm # Python 3 version: http://git.io/vl5Ls import sys from pygooglechart import SimpleLineChart from pygooglechart import Axis import fpdf try: import Image import ImageFilter import ImageEnhance import ImageDraw except: from PIL import Image from PIL import ImageFilter from PIL import ImageEnhance from PIL import ImageDraw # Python logging module. # Provides a more advanced way # to track and log program progress. # Logging level - everything at or below # this level will output. INFO is below. level = logging.DEBUG # The formatter formats the log message. # In this case we print the local time, logger name, and message formatter = logging.Formatter("%(asctime)s - %(name)s - %(message)s") # Establish a logging object and name it log = logging.getLogger("GPX-Reporter") # Configure our logger log.setLevel(level) # Print to the command line console = logging.StreamHandler() console.setLevel(level) console.setFormatter(formatter) log.addHandler(console)
This logger prints to the console, but with a few simple modifications, you can have it print to a file or even a database just by altering the configuration in this section. This module is built in Python and documented here: https://docs.python.org/3/howto/logging.html.