Add logging.
This commit is contained in:
parent
2103b061a2
commit
3fa7aa9b40
4 changed files with 512 additions and 93 deletions
blasta
|
@ -15,8 +15,8 @@ import argparse
|
|||
from blasta.config import Cache, Settings, Share
|
||||
from blasta.http.instance import HttpInstance
|
||||
from blasta.database.sqlite import DatabaseSQLite
|
||||
from blasta.utilities.logger import UtilitiesLogger
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
from os.path import getsize, exists
|
||||
import shutil
|
||||
|
@ -80,9 +80,38 @@ if __name__ == 'blasta.__main__':
|
|||
usage='%(prog)s [OPTION]...')
|
||||
parser.add_argument('-v', '--version', help='print version',
|
||||
action='version', version='0.1')
|
||||
|
||||
# Setup the command line arguments.
|
||||
parser.add_argument('-p', '--port', help='port number', dest='port')
|
||||
parser.add_argument('-o', '--open', help='open an html browser', action='store_const', const=True, dest='open')
|
||||
parser.add_argument('--no-log', '--nolog', help='Do not create a log file',
|
||||
action='store_const', dest='nolog',
|
||||
const=True, default=False)
|
||||
|
||||
# Output verbosity options.
|
||||
parser.add_argument('-d', '--debug', help='set logging to DEBUG',
|
||||
action='store_const', dest='loglevel',
|
||||
const='debug', default='info')
|
||||
parser.add_argument('-q', '--quiet', help='set logging to ERROR',
|
||||
action='store_const', dest='loglevel',
|
||||
const='error', default='info')
|
||||
parser.add_argument('-w', '--warning', help='set logging to WARNING',
|
||||
action='store_const', dest='loglevel',
|
||||
const='warn', default='info')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
filename_log = os.path.join(directory_cache, 'blasta_log.csv')
|
||||
filename_log_old = os.path.join(directory_cache, 'blasta_log.csv.old')
|
||||
if os.path.exists(filename_log): os.rename(filename_log, filename_log_old)
|
||||
loglevel = args.loglevel
|
||||
logger = UtilitiesLogger('blasta')
|
||||
if not args.nolog:
|
||||
logger.set_filename(filename_log)
|
||||
with open(filename_log, 'a') as file:
|
||||
file.write('Time,,Level,Module,Function,JID/Path,Message\n')
|
||||
logger.set_level(loglevel)
|
||||
|
||||
port = int(args.port or 8000)
|
||||
|
||||
app = main()
|
||||
|
|
File diff suppressed because it is too large
Load diff
75
blasta/utilities/logger.py
Normal file
75
blasta/utilities/logger.py
Normal file
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from datetime import datetime
|
||||
import logging
|
||||
|
||||
class UtilitiesLogger:
|
||||
|
||||
def __init__(self, name):
|
||||
self.logger = logging.getLogger(name)
|
||||
|
||||
def set_level(self, loglevel):
|
||||
match loglevel:
|
||||
case 'debug':
|
||||
level = logging.DEBUG
|
||||
case 'error':
|
||||
level = logging.ERROR
|
||||
case 'info':
|
||||
level = logging.INFO
|
||||
case 'warning':
|
||||
level = logging.WARNING
|
||||
case _:
|
||||
level = logging.NOTSET
|
||||
|
||||
self.logger.setLevel(level)
|
||||
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setLevel(level)
|
||||
|
||||
formatter = logging.Formatter('[%(asctime)s] %(levelname)s:%(name)s:%(message)s')
|
||||
console_handler.setFormatter(formatter)
|
||||
|
||||
# Add the console handler only if there are no handlers already
|
||||
if not self.logger.handlers:
|
||||
self.logger.addHandler(console_handler)
|
||||
|
||||
def set_filename(self, filename):
|
||||
|
||||
file_handler = logging.FileHandler(filename)
|
||||
file_handler.setLevel(logging.DEBUG)
|
||||
|
||||
formatter = logging.Formatter('%(asctime)s,%(levelname)s,%(name)s,%(message)s')
|
||||
file_handler.setFormatter(formatter)
|
||||
|
||||
# Add the console handler only if there are no handlers already
|
||||
if not self.logger.handlers:
|
||||
self.logger.addHandler(file_handler)
|
||||
|
||||
def debug(self, message):
|
||||
self.logger.debug(message)
|
||||
|
||||
def info(self, message):
|
||||
self.logger.info(message)
|
||||
|
||||
def warning(self, message):
|
||||
self.logger.warning(message)
|
||||
|
||||
def error(self, message):
|
||||
self.logger.error(message)
|
||||
|
||||
def critical(self, message):
|
||||
self.logger.critical(message)
|
||||
|
||||
# Example usage:
|
||||
# logger = Logger('my_logger')
|
||||
# logger.set_level('debug')
|
||||
# logger.debug('This is a debug message.')
|
||||
|
||||
class Message:
|
||||
|
||||
def printer(text):
|
||||
now = datetime.now()
|
||||
current_time = now.strftime("%H:%M:%S")
|
||||
# print('{} {}'.format(current_time, text), end='\r')
|
||||
print('{} {}'.format(current_time, text))
|
|
@ -1,13 +1,20 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from blasta.utilities.logger import UtilitiesLogger
|
||||
from slixmpp import ClientXMPP
|
||||
import sys
|
||||
|
||||
logger = UtilitiesLogger(__name__)
|
||||
|
||||
class XmppInstance(ClientXMPP):
|
||||
|
||||
def __init__(self, jid, password):
|
||||
function_name = sys._getframe().f_code.co_name
|
||||
logger.debug(f'{function_name},{jid},Start')
|
||||
super().__init__(jid, password)
|
||||
#self.add_event_handler("connection_failed", self.on_connection_failed)
|
||||
#self.add_event_handler("failed_auth", self.on_failed_auth)
|
||||
self.add_event_handler("connection_failed", self.on_connection_failed)
|
||||
self.add_event_handler("failed_auth", self.on_failed_auth)
|
||||
self.add_event_handler("session_start", self.on_session_start)
|
||||
self.register_plugin('xep_0004') # XEP-0004: Data Forms
|
||||
self.register_plugin('xep_0030') # XEP-0030: Service Discovery
|
||||
|
@ -17,15 +24,22 @@ class XmppInstance(ClientXMPP):
|
|||
self.register_plugin('xep_0163') # XEP-0163: Personal Eventing Protocol
|
||||
self.register_plugin('xep_0223') # XEP-0223: Persistent Storage of Private Data via PubSub
|
||||
self.connect()
|
||||
# self.process(forever=False)
|
||||
|
||||
self.connection_accepted = False
|
||||
|
||||
# def on_connection_failed(self, event):
|
||||
# self.connection_accepted = False
|
||||
def on_connection_failed(self, event):
|
||||
function_name = sys._getframe().f_code.co_name
|
||||
logger.debug(f'{function_name},{event},Start')
|
||||
self.connection_accepted = False
|
||||
logger.debug(f'{function_name},{event},Finish')
|
||||
|
||||
# def on_failed_auth(self, event):
|
||||
# self.connection_accepted = False
|
||||
def on_failed_auth(self, event):
|
||||
function_name = sys._getframe().f_code.co_name
|
||||
logger.debug(f'{function_name},{event},Start')
|
||||
self.connection_accepted = False
|
||||
logger.debug(f'{function_name},{event},Finish')
|
||||
|
||||
def on_session_start(self, event):
|
||||
function_name = sys._getframe().f_code.co_name
|
||||
logger.debug(f'{function_name},{event},Start')
|
||||
self.connection_accepted = True
|
||||
logger.debug(f'{function_name},{event},Finish')
|
||||
|
|
Loading…
Add table
Reference in a new issue