diff options
author | Gustavo <gustavo@gustavo-HP.(none)> | 2013-02-08 14:19:53 (GMT) |
---|---|---|
committer | Gustavo <gustavo@gustavo-HP.(none)> | 2013-02-08 14:19:53 (GMT) |
commit | 24e56d53c6421ec8c63ef796599988a0a6ea1aea (patch) | |
tree | c7602967df67a02b9ed1509934165d5dc099e697 | |
parent | a606b0d5b189e1b0a99971ea54824e81137ee5b8 (diff) |
Add logging instead printf
-rw-r--r-- | sugar_stats_consolidation/consolidation.py | 23 | ||||
-rwxr-xr-x | sugar_stats_consolidation/consolidation_run | 52 | ||||
-rw-r--r-- | sugar_stats_consolidation/db.py | 48 | ||||
-rwxr-xr-x | sugar_stats_consolidation/test_cons.py | 13 | ||||
-rw-r--r-- | sugar_stats_consolidation/test_db.py | 6 | ||||
-rwxr-xr-x | sugar_stats_consolidation/test_rrd.py | 52 | ||||
-rwxr-xr-x | sugar_stats_consolidation/test_rrds_content.py | 31 |
7 files changed, 76 insertions, 149 deletions
diff --git a/sugar_stats_consolidation/consolidation.py b/sugar_stats_consolidation/consolidation.py index ce72ce7..4e0058e 100644 --- a/sugar_stats_consolidation/consolidation.py +++ b/sugar_stats_consolidation/consolidation.py @@ -1,18 +1,25 @@ -from __future__ import print_function import os import argparse +import logging import rrd_files import db from rrd_files import * from db import * + +log = logging.getLogger(__name__) + class Consolidation: def __init__(self, path, db): self.base_path = path - self.date_start = db.get_date_last_record() - self.db = db + try: + self.date_start = db.get_date_last_record() + self.db = db + except Exception as e: + log.error('Exception: %s ', e) + def process_rrds (self): id_hash_list = os.listdir(unicode(self.base_path)) try: @@ -29,13 +36,13 @@ class Consolidation: rrd_obj = RRD (path=rrd_path, name=rrd, date_start=self.date_start, date_end=None) self.db.store_activity_uptime(rrd_obj) except Exception as e: - print ("warning, coninute ..") + log.warning('Exception on RRD object instance: \'%s\'', e) else: - print ("RRD file not found: {0}".format(os.path.join(self.base_path, id_hash, user_hash))) + log.warning('RRD file not found: %s', os.path.join(self.base_path, id_hash, user_hash)) else: - print ("None hash user found on: {0}".format(os.path.join(self.base_path, id_hash))) + log.warning('Hash user direcotory not found: %s', os.path.join(self.base_path, id_hash)) else: - print ("None hash ids found on: {0}" + format(self.base_path)) + log.error('Hash ids not found on: %s', self.base_path) except Exception as e: - print ("Error processing rrds: {0}".format(str(e))) + log.error('Excpetion processing rrds: \'%s\'', e) diff --git a/sugar_stats_consolidation/consolidation_run b/sugar_stats_consolidation/consolidation_run index 553a723..8730381 100755 --- a/sugar_stats_consolidation/consolidation_run +++ b/sugar_stats_consolidation/consolidation_run @@ -17,30 +17,48 @@ from __future__ import print_function import argparse +import logging + from sugar_stats_consolidation.db import * from sugar_stats_consolidation.rrd_files import * from sugar_stats_consolidation.consolidation import * -parser = argparse.ArgumentParser() -parser.add_argument('--db_user',required=True) -parser.add_argument('--db_pass',required=True) -parser.add_argument('--db_name',required=True) -parser.add_argument('--rrd_path',required=True) -parser.add_argument('--log_path',required=True) -args = parser.parse_args() +_LOG_FORMAT='[%(asctime)s]-%(levelname)s-\'%(name)s\': %(message)s' + +logging.basicConfig(filename='sugar-stats-consolidation.log', format=_LOG_FORMAT, level=logging.DEBUG) +log = logging.getLogger(__name__) + +def main(): + + parser = argparse.ArgumentParser() + parser.add_argument('--db_user',required=True) + parser.add_argument('--db_pass',required=True) + parser.add_argument('--db_name',required=True) + parser.add_argument('--rrd_path',required=True) + parser.add_argument('--log_path',required=True) + + args = parser.parse_args() + + log.info('**************************************') + log.info(' Starting consolidation ') + log.info('**************************************') + + + try: + db = DB_Stats (args.db_name, args.db_user, args.db_pass) + db.create() + except Exception as e: + log.warning('Creating DB: %s', str(e)) -try: - db = DB_Stats (args.db_name, args.db_user, args.db_pass) - db.create() -except Exception as e: - print ("Creating DB: {0}".format (str(e))) + try: + con = Consolidation(args.rrd_path, db) + con.process_rrds() + except Exception as e: + log.warning('Processing rrd file: %s', str(e)) -try: - con = Consolidation(args.rrd_path, db) - con.process_rrds() -except Exception as e: - print ("Processing rrd file: {0}".format(str(e))) +if __name__ == '__main__': + main() diff --git a/sugar_stats_consolidation/db.py b/sugar_stats_consolidation/db.py index de66e2c..f1bd0ec 100644 --- a/sugar_stats_consolidation/db.py +++ b/sugar_stats_consolidation/db.py @@ -1,12 +1,15 @@ -from __future__ import print_function import mysql.connector from mysql.connector import errorcode from datetime import datetime +import logging + import sugar_stats_consolidation.rrd_files from rrd_files import * +log = logging.getLogger(__name__) + class DB_Stats: TABLES={} @@ -45,12 +48,11 @@ class DB_Stats: ")") - def __init__(self, db_name, user, password): self.db_name = db_name self.user = user self.password = password - + def create_database(self, cursor): try: @@ -62,15 +64,15 @@ class DB_Stats: def create_tables(self, cursor): for name, ddl in self.TABLES.iteritems(): try: - print("Creating table {0}: ".format(name), end='') + log.info('Creating table %s:', name) cursor.execute(ddl) except mysql.connector.Error as err: if err.errno == errorcode.ER_TABLE_EXISTS_ERROR: - print("already exists.") + log.warning('Table %s already exists.', name) else: raise Exception ("Error: {0}".format(err)) else: - print("OK") + log.info('Table %s crated', name) def create (self): self.cnx = mysql.connector.connect(user=self.user, password=self.password) @@ -78,7 +80,7 @@ class DB_Stats: """Try connect to db """ try: self.cnx.database = self.db_name - print("DB ["+self.db_name+"] created already, will try create tables:" ) + log.info('Data Base %s already created, will create tables', self.db_name) self.create_tables(cursor) except mysql.connector.Error as err: """If db not exist, then create""" @@ -120,7 +122,7 @@ class DB_Stats: self.cnx.commit() except mysql.connector.Error as err: - print("Fail {0}: {1}".format(cursor.statement, err)) + log.error('MySQL on store_activiy_uptime: %s %s', cursor.statement, err) cursor.close() @@ -132,14 +134,14 @@ class DB_Stats: cursor.execute(op, params) result = cursor.fetchone() if result != None: - print("Resource {0} already in db".format(resource_name)) + log.info('Resource %s already present in DB', resource_name) else: insert = ("INSERT INTO Resources (name) VALUES (%s)") info = (resource_name, ) cursor.execute(insert, info) self.cnx.commit() except mysql.connector.Error as err: - print("Fail {0}: {1}".format(cursor.statement, err)) + log.info('MySQL on store_resource: %s %s', cursor.statement, err) cursor.close() @@ -151,7 +153,7 @@ class DB_Stats: cursor.execute(op, params) result = cursor.fetchone() if result != None: - print("User {0} already in db".format(rrd.user_hash)) + log.info('User %s already in DB', rrd.user_hash) else: """FIXME change hardcoded values """ insert = ("INSERT INTO Users (hash, uuid, machine_sn, age, school, sw_version) VALUES (%s, %s, %s, %s, %s, %s)") @@ -159,7 +161,7 @@ class DB_Stats: cursor.execute(insert, params) self.cnx.commit() except mysql.connector.Error as err: - print("Fail {0}: {1}".format(cursor.statement, err)) + log.error('MySQL on store_user %s %s', cursor.statement, err) cursor.close() @@ -184,7 +186,7 @@ class DB_Stats: self.cnx.commit() except mysql.connector.Error as err: - print("Fail {0}: {1}".format(cursor.statement, err)) + log.error('MySQL on update_last_record: %s %s', cursor.statement, err) res = -1 cursor.close() @@ -196,14 +198,16 @@ class DB_Stats: try: cursor.execute(op) result = cursor.fetchone() - if result != None: - print ("last record: {0}".format(str(datetime.fromtimestamp (result[0])))) - return result[0] + if result != None and result[0] != None: + log.info('Last record: %s', str(datetime.fromtimestamp (float (result[0])))) + return result[0] else: - print ("Last date record is None") + log.info('Last date record is None') return 0 except mysql.connector.Error as err: - print("Fail {0}: {1}".format(cursor.statement, err)) + log.error('MySQL on get_date_last_record: %s %s',cursor.statement, err) + except Exception as e: + raise Exception ("get_date_last_record: {0}".format(e)) cursor.close() @@ -214,7 +218,7 @@ class DB_Stats: self.cnx.database = self.db_name cursor.close() except mysql.connector.Error as err: - print("CONNECT FAIL {0}".format (err)) + log.error('MySQL Connect fail', err) def most_activity_used (self, start, end): uptime_last=0 @@ -237,9 +241,9 @@ class DB_Stats: uptime_last= uptime[0] activity_name = name[0] except mysql.connector.Error as err: - print("Fail {0}:".format(err)) + log.error('MySQL on most_activity_used', err) except: - print("most_activity_used Fail ") + log.error('most_activity_used Fail') cursor1.close() cursor2.close() @@ -255,7 +259,7 @@ class DB_Stats: res = cursor.fetchone() return res[0] except mysql.connector.Error as err: - print("Fail {0}: {1}".format(cursor.statement, err)) + log.error("MySQL on fequency_usage %s: %s", cursor.statement, err) cursor.close() diff --git a/sugar_stats_consolidation/test_cons.py b/sugar_stats_consolidation/test_cons.py deleted file mode 100755 index f58f9fc..0000000 --- a/sugar_stats_consolidation/test_cons.py +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env python - -import sugar_stats_consolidation -from sugar_stats_consolidation.db import * -from sugar_stats_consolidation.rrd_files import * -from sugar_stats_consolidation.consolidation import * - -db = DB_Stats('statistics', 'root', 'gustavo') -db.create(); - -con = Consolidation('/var/lib/sugar-stats/rrd', db) - -con.process_rrds() diff --git a/sugar_stats_consolidation/test_db.py b/sugar_stats_consolidation/test_db.py deleted file mode 100644 index 197510a..0000000 --- a/sugar_stats_consolidation/test_db.py +++ /dev/null @@ -1,6 +0,0 @@ -import stats_consolidation -from stats_consolidation import * - -db = DB_Stats('statistics', 'root', 'gustavo') -db.create(); - diff --git a/sugar_stats_consolidation/test_rrd.py b/sugar_stats_consolidation/test_rrd.py deleted file mode 100755 index 81dd3c8..0000000 --- a/sugar_stats_consolidation/test_rrd.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env python - -import argparse -from db import * -from rrd_files import * -from db import * - -parser = argparse.ArgumentParser() -parser.add_argument('--rrd_path',required=False) -parser.add_argument('--rrd_name',required=True) - -args = parser.parse_args() - -print "============================== TEST RRD -> Relational DB ========================================" -db = DB_Stats('statistics', 'root', 'gustavo') -db.create() - -DATE_START =datetime(year=2012, - month=12, - day=13, - hour=0, - minute=0, - second=0).strftime("%s") - - -DATE_END = datetime(year=2012, - month=12, - day=14, - hour=0, - minute=0, - second=0).strftime("%s") - -DATE_START = db.get_date_last_record() -DATE_END = datetime.now().strftime("%s") - -act_rrd = RRD (path = "/home/gustavo/AC/consolidation/rrds", name=args.rrd_name) -""" -act_rrd = RRD (path = "/home/gustavo/AC/consolidation/rrds", name="abacus.rrd", date_start=DATE_START, date_end=DATE_END) -""" -""" -act_rrd.show_valid_ds("resumed") -act_rrd.show_valid_ds("new") -act_rrd.show_valid_ds("instances") -act_rrd.show_valid_ds("buddies") -data = {} -db.store_activity_uptime(act_rrd) -""" -act_rrd.show_valid_ds("uptime") -act_rrd.show_valid_ds("active") - -act_rrd.get_uptime_by_interval() -act_rrd.get_active_by_interval() diff --git a/sugar_stats_consolidation/test_rrds_content.py b/sugar_stats_consolidation/test_rrds_content.py deleted file mode 100755 index df6c99e..0000000 --- a/sugar_stats_consolidation/test_rrds_content.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python - -import argparse -from rrd_files import * - -parser = argparse.ArgumentParser() -parser.add_argument('--rrd_path',required=False) -parser.add_argument('--rrd_name',required=True) - -args = parser.parse_args() - -print "============================== TEST RRD analyze content ========================================" - -if args.rrd_path == None: - def_path = "/home/olpc/.sugar/default/stats" -else: - def_path = args.rrd_path - -rrd = RRD (path=def_path, name=args.rrd_name) - -""" -act_rrd.show_valid_ds("resumed") -act_rrd.show_valid_ds("new") -act_rrd.show_valid_ds("instances") -act_rrd.show_valid_ds("buddies") -""" -rrd.show_valid_ds("uptime") -rrd.show_valid_ds("active") - -rrd.get_uptime_by_interval() -rrd.get_active_by_interval() |