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
uplink.iml
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 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)