improved logging with timestamps (instead of print)
authorCiprian Manea <ciprian.manea@gmail.com>
Mon, 5 Aug 2019 18:17:29 +0000 (21:17 +0300)
committerCiprian Manea <ciprian.manea@gmail.com>
Mon, 5 Aug 2019 18:17:29 +0000 (21:17 +0300)
examples/adc.py
examples/all-in-one-no-pm.py
examples/all-in-one.py
examples/compensated-temperature.py
examples/gas.py
examples/lcd.py
examples/light.py
examples/luftdaten.py
examples/particulates.py
examples/weather.py

index c4cf45cf8f0d598e2fd88ea93f10812b874de737..82bda4150b38a0c5be3c557b9a13bce21a24bf8f 100755 (executable)
@@ -2,8 +2,14 @@
 
 import time
 from enviroplus import gas
 
 import time
 from enviroplus import gas
+import logging
 
 
-print("""adc.py - Print readings from the MICS6814 Gas sensor.
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""adc.py - Print readings from the MICS6814 Gas sensor.
 
 Press Ctrl+C to exit!
 
 
 Press Ctrl+C to exit!
 
@@ -15,7 +21,7 @@ gas.set_adc_gain(4.096)
 try:
     while True:
         readings = gas.read_all()
 try:
     while True:
         readings = gas.read_all()
-        print(readings)
+        logging.info(readings)
         time.sleep(1.0)
 except KeyboardInterrupt:
     pass
         time.sleep(1.0)
 except KeyboardInterrupt:
     pass
index 962f627548fe0c0b62395e3dacb59e8a755de74a..54860126bdc3ee37aa02d367f6f9f83e3755372d 100755 (executable)
@@ -13,8 +13,14 @@ from subprocess import PIPE, Popen
 from PIL import Image
 from PIL import ImageDraw
 from PIL import ImageFont
 from PIL import Image
 from PIL import ImageDraw
 from PIL import ImageFont
+import logging
 
 
-print("""all-in-one.py - Displays readings from all of Enviro plus' sensors
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""all-in-one.py - Displays readings from all of Enviro plus' sensors
 Press Ctrl+C to exit!
 """)
 
 Press Ctrl+C to exit!
 """)
 
@@ -58,7 +64,7 @@ def display_text(variable, data, unit):
                - min(values[variable]) + 1) for v in values[variable]]
     # Format the variable name and value
     message = "{}: {:.1f} {}".format(variable[:4], data, unit)
                - min(values[variable]) + 1) for v in values[variable]]
     # Format the variable name and value
     message = "{}: {:.1f} {}".format(variable[:4], data, unit)
-    print(message)
+    logging.info(message)
     draw.rectangle((0, 0, WIDTH, HEIGHT), (255, 255, 255))
     for i in range(len(colours)):
         # Convert the values to colours from red to blue
     draw.rectangle((0, 0, WIDTH, HEIGHT), (255, 255, 255))
     for i in range(len(colours)):
         # Convert the values to colours from red to blue
index 63439519670181ad5e6467e057aa6556588d7cf8..87840901fd5efd3610d2aecbb943ed6c27432d41 100755 (executable)
@@ -14,8 +14,14 @@ from subprocess import PIPE, Popen
 from PIL import Image
 from PIL import ImageDraw
 from PIL import ImageFont
 from PIL import Image
 from PIL import ImageDraw
 from PIL import ImageFont
+import logging
 
 
-print("""all-in-one.py - Displays readings from all of Enviro plus' sensors
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""all-in-one.py - Displays readings from all of Enviro plus' sensors
 
 Press Ctrl+C to exit!
 
 
 Press Ctrl+C to exit!
 
@@ -64,7 +70,7 @@ def display_text(variable, data, unit):
                - min(values[variable]) + 1) for v in values[variable]]
     # Format the variable name and value
     message = "{}: {:.1f} {}".format(variable[:4], data, unit)
                - min(values[variable]) + 1) for v in values[variable]]
     # Format the variable name and value
     message = "{}: {:.1f} {}".format(variable[:4], data, unit)
-    print(message)
+    logging.info(message)
     draw.rectangle((0, 0, WIDTH, HEIGHT), (255, 255, 255))
     for i in range(len(colours)):
         # Convert the values to colours from red to blue
     draw.rectangle((0, 0, WIDTH, HEIGHT), (255, 255, 255))
     for i in range(len(colours)):
         # Convert the values to colours from red to blue
index 2733f56c756d43a2bcc1cf57a6eef085ed9f6117..6a9c115ed05cf3d6229f5ead5178724a1f1967d4 100755 (executable)
@@ -9,7 +9,14 @@ try:
 except ImportError:
     from smbus import SMBus
 
 except ImportError:
     from smbus import SMBus
 
-print("""compensated-temperature.py - Use the CPU temperature
+import logging
+
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""compensated-temperature.py - Use the CPU temperature
 to compensate temperature readings from the BME280 sensor.
 Method adapted from Initial State's Enviro pHAT review:
 https://medium.com/@InitialState/tutorial-review-enviro-phat-for-raspberry-pi-4cd6d8c63441
 to compensate temperature readings from the BME280 sensor.
 Method adapted from Initial State's Enviro pHAT review:
 https://medium.com/@InitialState/tutorial-review-enviro-phat-for-raspberry-pi-4cd6d8c63441
@@ -42,5 +49,5 @@ while True:
     avg_cpu_temp = sum(cpu_temps) / float(len(cpu_temps))
     raw_temp = bme280.get_temperature()
     comp_temp = raw_temp - ((avg_cpu_temp - raw_temp) / factor)
     avg_cpu_temp = sum(cpu_temps) / float(len(cpu_temps))
     raw_temp = bme280.get_temperature()
     comp_temp = raw_temp - ((avg_cpu_temp - raw_temp) / factor)
-    print("Compensated temperature: {:05.2f} *C".format(comp_temp))
+    logging.info("Compensated temperature: {:05.2f} *C".format(comp_temp))
     time.sleep(1.0)
     time.sleep(1.0)
index faf6eac84611944ec9b908cefeb7b47e1e31518d..2f849442b8bf61a253a1083dd2ef561f73ba70c7 100755 (executable)
@@ -2,8 +2,14 @@
 
 import time
 from enviroplus import gas
 
 import time
 from enviroplus import gas
+import logging
 
 
-print("""gas.py - Print readings from the MICS6814 Gas sensor.
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""gas.py - Print readings from the MICS6814 Gas sensor.
 
 Press Ctrl+C to exit!
 
 
 Press Ctrl+C to exit!
 
@@ -12,7 +18,7 @@ Press Ctrl+C to exit!
 try:
     while True:
         readings = gas.read_all()
 try:
     while True:
         readings = gas.read_all()
-        print(readings)
+        logging.info(readings)
         time.sleep(1.0)
 except KeyboardInterrupt:
     pass
         time.sleep(1.0)
 except KeyboardInterrupt:
     pass
index aa0e193604388cdd3ec8ac2de8b286b2bef639fc..7e50c94eb68c5a2f6788c5c0d9810100860a683e 100755 (executable)
@@ -2,8 +2,14 @@
 
 import ST7735
 from PIL import Image, ImageDraw, ImageFont
 
 import ST7735
 from PIL import Image, ImageDraw, ImageFont
+import logging
 
 
-print("""lcd.py - Hello, World! example on the 0.96" LCD.
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""lcd.py - Hello, World! example on the 0.96" LCD.
 
 Press Ctrl+C to exit!
 
 
 Press Ctrl+C to exit!
 
index 216477a766db19768e9d92683f7984bc664f3fac..3442fb489d0ac677636255458a2029a9c5511ad7 100755 (executable)
@@ -2,8 +2,14 @@
 
 import time
 import ltr559
 
 import time
 import ltr559
+import logging
 
 
-print("""light.py - Print readings from the LTR559 Light & Proximity sensor.
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""light.py - Print readings from the LTR559 Light & Proximity sensor.
 
 Press Ctrl+C to exit!
 
 
 Press Ctrl+C to exit!
 
@@ -13,7 +19,7 @@ try:
     while True:
         lux = ltr559.get_lux()
         prox = ltr559.get_proximity()
     while True:
         lux = ltr559.get_lux()
         prox = ltr559.get_proximity()
-        print("""Light: {:05.02f} Lux
+        logging.info("""Light: {:05.02f} Lux
 Proximity: {:05.02f}
 """.format(lux, prox))
         time.sleep(1.0)
 Proximity: {:05.02f}
 """.format(lux, prox))
         time.sleep(1.0)
index c5b03873356bbdca7a808ab0f29729e6f4b88501..dd6e967708664f4e3be22233904f576f2ea3c240 100755 (executable)
@@ -12,7 +12,14 @@ try:
 except ImportError:
     from smbus import SMBus
 
 except ImportError:
     from smbus import SMBus
 
-print("""luftdaten.py - Reads temperature, pressure, humidity,
+import logging
+
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""luftdaten.py - Reads temperature, pressure, humidity,
 PM2.5, and PM10 from Enviro plus and sends data to Luftdaten,
 the citizen science air quality project.
 
 PM2.5, and PM10 from Enviro plus and sends data to Luftdaten,
 the citizen science air quality project.
 
@@ -162,16 +169,16 @@ font_size = 16
 font = ImageFont.truetype("fonts/Asap/Asap-Bold.ttf", font_size)
 
 # Display Raspberry Pi serial and Wi-Fi status
 font = ImageFont.truetype("fonts/Asap/Asap-Bold.ttf", font_size)
 
 # Display Raspberry Pi serial and Wi-Fi status
-print("Raspberry Pi serial: {}".format(get_serial_number()))
-print("Wi-Fi: {}\n".format("connected" if check_wifi() else "disconnected"))
+logging.info("Raspberry Pi serial: {}".format(get_serial_number()))
+logging.info("Wi-Fi: {}\n".format("connected" if check_wifi() else "disconnected"))
 
 # Main loop to read data, display, and send to Luftdaten
 while True:
     try:
         values = read_values()
 
 # Main loop to read data, display, and send to Luftdaten
 while True:
     try:
         values = read_values()
-        print(values)
+        logging.info(values)
         resp = send_to_luftdaten(values, id)
         resp = send_to_luftdaten(values, id)
-        print("Response: {}\n".format("ok" if resp else "failed"))
+        logging.info("Response: {}\n".format("ok" if resp else "failed"))
         display_status()
     except Exception as e:
         display_status()
     except Exception as e:
-        print(e)
+        logging.info(e)
index e71ca5d96f78782f5237134e1dffd3df51dfcf7e..9aa9c37814a0bc3f6d34bf03f1df52d58fa3408f 100755 (executable)
@@ -2,8 +2,14 @@
 
 import time
 from pms5003 import PMS5003, ReadTimeoutError
 
 import time
 from pms5003 import PMS5003, ReadTimeoutError
+import logging
 
 
-print("""particulates.py - Print readings from the PMS5003 particulate sensor.
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""particulates.py - Print readings from the PMS5003 particulate sensor.
 
 Press Ctrl+C to exit!
 
 
 Press Ctrl+C to exit!
 
@@ -16,7 +22,7 @@ try:
     while True:
         try:
             readings = pms5003.read()
     while True:
         try:
             readings = pms5003.read()
-            print(readings)
+            logging.info(readings)
             time.sleep(1.0)
         except ReadTimeoutError:
             pms5003 = PMS5003()
             time.sleep(1.0)
         except ReadTimeoutError:
             pms5003 = PMS5003()
index 17aba2041ac13d819ff23f3f431cf6b8f395702f..503602104ced2a691e2b70eff06d51b54c7f7a37 100755 (executable)
@@ -8,7 +8,14 @@ try:
 except ImportError:
     from smbus import SMBus
 
 except ImportError:
     from smbus import SMBus
 
-print("""weather.py - Print readings from the BME280 weather sensor.
+import logging
+
+logging.basicConfig(
+    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
+    level=logging.INFO,
+    datefmt='%Y-%m-%d %H:%M:%S')
+
+logging.info("""weather.py - Print readings from the BME280 weather sensor.
 
 Press Ctrl+C to exit!
 
 
 Press Ctrl+C to exit!
 
@@ -21,7 +28,7 @@ while True:
     temperature = bme280.get_temperature()
     pressure = bme280.get_pressure()
     humidity = bme280.get_humidity()
     temperature = bme280.get_temperature()
     pressure = bme280.get_pressure()
     humidity = bme280.get_humidity()
-    print("""Temperature: {:05.2f} *C
+    logging.info("""Temperature: {:05.2f} *C
 Pressure: {:05.2f} hPa
 Relative humidity: {:05.2f} %
 """.format(temperature, pressure, humidity))
 Pressure: {:05.2f} hPa
 Relative humidity: {:05.2f} %
 """.format(temperature, pressure, humidity))