added logging

This commit is contained in:
Johannes Findeisen 2020-09-06 07:02:14 +02:00
commit c1b008b1b5
5 changed files with 36 additions and 12 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@
config.json config.json
uplink.iml uplink.iml
uplink.sqlite3 uplink.sqlite3
log/*.log*

13
config.example.json Normal file
View file

@ -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" }
]
}

View file

@ -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" }
]
}

0
log/.gitkeep Normal file
View file

View file

@ -4,11 +4,17 @@ import calendar
import datetime import datetime
# import daemon # import daemon
import json import json
import logging
import logging.handlers
import os
import os.path as path
import sqlite3 import sqlite3
import time import time
from fritzconnection.lib.fritzstatus import FritzStatus from fritzconnection.lib.fritzstatus import FritzStatus
logger = logging.getLogger(__name__)
def get_data(config): def get_data(config):
conn = sqlite3.connect(config["database"]) conn = sqlite3.connect(config["database"])
@ -20,8 +26,8 @@ def get_data(config):
status = "UP" status = "UP"
else: else:
status = "DOWN" 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, ' \ 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_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 (\"' + \ '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_bit_rate[1]) + '\",\"' + str(fc.str_max_linked_bit_rate[0]) + '\",\"' + \
str(fc.str_max_linked_bit_rate[1]) + '\",\"' + str(fc.modelname) + '\",\"' + \ str(fc.str_max_linked_bit_rate[1]) + '\",\"' + str(fc.modelname) + '\",\"' + \
str(fc.fc.system_version) + '\")' str(fc.fc.system_version) + '\")'
# print(sql) logging.debug(sql)
c.execute(sql) c.execute(sql)
print("##########################################################")
conn.commit() conn.commit()
conn.close() conn.close()
@ -50,4 +55,17 @@ if __name__ == "__main__":
with open('config.json', 'r') as configfile: with open('config.json', 'r') as configfile:
config_data = configfile.read() config_data = configfile.read()
_config = json.loads(config_data) _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) run(_config)