From c1b008b1b58bdd6d4bbd0569a6f3747e06c2d261 Mon Sep 17 00:00:00 2001 From: Johannes Findeisen Date: Sun, 6 Sep 2020 07:02:14 +0200 Subject: [PATCH] added logging --- .gitignore | 1 + config.example.json | 13 +++++++++++++ config.json.example | 8 -------- log/.gitkeep | 0 uplink.py | 26 ++++++++++++++++++++++---- 5 files changed, 36 insertions(+), 12 deletions(-) create mode 100644 config.example.json delete mode 100644 config.json.example create mode 100644 log/.gitkeep diff --git a/.gitignore b/.gitignore index 59c17f3..d0c1e1e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ config.json uplink.iml uplink.sqlite3 +log/*.log* diff --git a/config.example.json b/config.example.json new file mode 100644 index 0000000..b91b1e5 --- /dev/null +++ b/config.example.json @@ -0,0 +1,13 @@ +{ + "interval": 60, + "database": "uplink.sqlite3", + "logdir": "./log/uplink.log", + "logsize": 1024000, + "logcount": 5, + "loglevel": "INFO", + "database": "./uplink.sqlite3", + "uplinks": [ + { "provider": "Cable Provider", "ip": "192.168.0.1", "password": "1234" }, + { "provider": "DSL Provider", "ip": "192.168.1.1", "password": "1234" } + ] +} diff --git a/config.json.example b/config.json.example deleted file mode 100644 index d90aa94..0000000 --- a/config.json.example +++ /dev/null @@ -1,8 +0,0 @@ -{ - "interval": 60, - "database": "uplink.sqlite3", - "uplinks": [ - { "provider": "Cable Provider", "ip": "192.168.0.1", "password": "1234" }, - { "provider": "DSL Provider", "ip": "192.168.1.1", "password": "1234" } - ] -} diff --git a/log/.gitkeep b/log/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/uplink.py b/uplink.py index 4686574..bf36b36 100755 --- a/uplink.py +++ b/uplink.py @@ -4,11 +4,17 @@ import calendar import datetime # import daemon import json +import logging +import logging.handlers +import os +import os.path as path import sqlite3 import time from fritzconnection.lib.fritzstatus import FritzStatus +logger = logging.getLogger(__name__) + def get_data(config): conn = sqlite3.connect(config["database"]) @@ -20,8 +26,8 @@ def get_data(config): status = "UP" else: status = "DOWN" - print(str(datetime.datetime.utcfromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')) + " - " + - config["uplinks"][i]["provider"] + ": " + status) + + logger.info(config["uplinks"][i]["provider"] + ": " + status) sql = 'INSERT INTO log (datetime, uptime, external_ip, external_ipv6,is_linked,is_connected, ' \ 'str_transmission_rate_up, str_transmission_rate_down, str_max_bit_rate_up, str_max_bit_rate_down, ' \ 'str_max_linked_bit_rate_up, str_max_linked_bit_rate_down, modelname, system_version) VALUES (\"' + \ @@ -32,9 +38,8 @@ def get_data(config): str(fc.str_max_bit_rate[1]) + '\",\"' + str(fc.str_max_linked_bit_rate[0]) + '\",\"' + \ str(fc.str_max_linked_bit_rate[1]) + '\",\"' + str(fc.modelname) + '\",\"' + \ str(fc.fc.system_version) + '\")' - # print(sql) + logging.debug(sql) c.execute(sql) - print("##########################################################") conn.commit() conn.close() @@ -50,4 +55,17 @@ if __name__ == "__main__": with open('config.json', 'r') as configfile: config_data = configfile.read() _config = json.loads(config_data) + + logfile = path.expanduser(_config["logdir"]) + if not path.exists(path.dirname(logfile)): + os.makedirs(path.dirname(logfile)) + + root_logger = logging.getLogger() + formatter = logging.Formatter("%(asctime)s:%(levelname)s:%(name)s:%(message)s") + handler = logging.handlers.RotatingFileHandler(logfile, maxBytes=_config["logsize"], + backupCount=_config["logcount"]) + handler.setFormatter(formatter) + root_logger.addHandler(handler) + root_logger.setLevel(_config["loglevel"]) + run(_config)