This repository has been archived on 2021-09-15. You can view files and clone it, but cannot push or open issues or pull requests.
DUT2PTUT/m/log.py
sidya82 34d8a7c6b3 nouveau fichier: Doxyfile
nouveau fichier: doc/html/annotated.html
 	nouveau fichier: doc/html/annotated.js
 	nouveau fichier: doc/html/bc_s.png
 	nouveau fichier: doc/html/bdwn.png
 	nouveau fichier: doc/html/classes.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error-members.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error.js
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error.png
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf-members.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf.js
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf.png
 	nouveau fichier: doc/html/classm_1_1log_1_1_log-members.html
 	nouveau fichier: doc/html/classm_1_1log_1_1_log.html
 	nouveau fichier: doc/html/classm_1_1log_1_1_log.js
 	nouveau fichier: doc/html/classm_1_1log_1_1_log.png
 	nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter-members.html
 	nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter.html
 	nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter.js
 	nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter.png
 	nouveau fichier: doc/html/classm_1_1log_1_1bcolors-members.html
 	nouveau fichier: doc/html/classm_1_1log_1_1bcolors.html
 	nouveau fichier: doc/html/classm_1_1log_1_1lvl-members.html
 	nouveau fichier: doc/html/classm_1_1log_1_1lvl.html
 	nouveau fichier: doc/html/classm_1_1login_1_1_login-members.html
 	nouveau fichier: doc/html/classm_1_1login_1_1_login.html
 	nouveau fichier: doc/html/classm_1_1login_1_1_login.js
 	nouveau fichier: doc/html/classm_1_1login_1_1_login.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_global_vars-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_global_vars.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler.png
 	nouveau fichier: doc/html/closed.png
 	nouveau fichier: doc/html/dir_060e062f70a4a7965197b0046a5699c1.html
 	nouveau fichier: doc/html/dir_b9f9e361513c934f24957ae0a3633a41.html
 	nouveau fichier: doc/html/dir_cc95ad066e2e041bbee057a78f4a0df2.html
 	nouveau fichier: doc/html/doxygen.css
 	nouveau fichier: doc/html/doxygen.png
 	nouveau fichier: doc/html/dynsections.js
 	nouveau fichier: doc/html/ftv2blank.png
 	nouveau fichier: doc/html/ftv2cl.png
 	nouveau fichier: doc/html/ftv2doc.png
 	nouveau fichier: doc/html/ftv2folderclosed.png
 	nouveau fichier: doc/html/ftv2folderopen.png
 	nouveau fichier: doc/html/ftv2lastnode.png
 	nouveau fichier: doc/html/ftv2link.png
 	nouveau fichier: doc/html/ftv2mlastnode.png
 	nouveau fichier: doc/html/ftv2mnode.png
 	nouveau fichier: doc/html/ftv2mo.png
 	nouveau fichier: doc/html/ftv2node.png
 	nouveau fichier: doc/html/ftv2ns.png
 	nouveau fichier: doc/html/ftv2plastnode.png
 	nouveau fichier: doc/html/ftv2pnode.png
 	nouveau fichier: doc/html/ftv2splitbar.png
 	nouveau fichier: doc/html/ftv2vertline.png
 	nouveau fichier: doc/html/functions.html
 	nouveau fichier: doc/html/functions_func.html
 	nouveau fichier: doc/html/hierarchy.html
 	nouveau fichier: doc/html/hierarchy.js
 	nouveau fichier: doc/html/index.html
 	nouveau fichier: doc/html/jquery.js
 	nouveau fichier: doc/html/link lol.gif
 	nouveau fichier: doc/html/md__r_e_a_d_m_e.html
 	nouveau fichier: doc/html/namespaces.html
 	nouveau fichier: doc/html/namespaces.js
 	nouveau fichier: doc/html/namespacesuper_tornado.html
 	nouveau fichier: doc/html/namespacesuper_tornado.js
 	nouveau fichier: doc/html/nav_f.png
 	nouveau fichier: doc/html/nav_g.png
 	nouveau fichier: doc/html/nav_h.png
 	nouveau fichier: doc/html/navtree.css
 	nouveau fichier: doc/html/navtree.js
 	nouveau fichier: doc/html/navtreeindex0.js
 	nouveau fichier: doc/html/open.png
 	nouveau fichier: doc/html/pages.html
 	nouveau fichier: doc/html/resize.js
 	nouveau fichier: doc/html/search/all_0.html
 	nouveau fichier: doc/html/search/all_0.js
 	nouveau fichier: doc/html/search/all_1.html
 	nouveau fichier: doc/html/search/all_1.js
 	nouveau fichier: doc/html/search/all_2.html
 	nouveau fichier: doc/html/search/all_2.js
 	nouveau fichier: doc/html/search/all_3.html
 	nouveau fichier: doc/html/search/all_3.js
 	nouveau fichier: doc/html/search/all_4.html
 	nouveau fichier: doc/html/search/all_4.js
 	nouveau fichier: doc/html/search/all_5.html
 	nouveau fichier: doc/html/search/all_5.js
 	nouveau fichier: doc/html/search/all_6.html
 	nouveau fichier: doc/html/search/all_6.js
 	nouveau fichier: doc/html/search/all_7.html
 	nouveau fichier: doc/html/search/all_7.js
 	nouveau fichier: doc/html/search/all_8.html
 	nouveau fichier: doc/html/search/all_8.js
 	nouveau fichier: doc/html/search/all_9.html
 	nouveau fichier: doc/html/search/all_9.js
 	nouveau fichier: doc/html/search/all_a.html
 	nouveau fichier: doc/html/search/all_a.js
 	nouveau fichier: doc/html/search/all_b.html
 	nouveau fichier: doc/html/search/all_b.js
 	nouveau fichier: doc/html/search/all_c.html
 	nouveau fichier: doc/html/search/all_c.js
 	nouveau fichier: doc/html/search/all_d.html
 	nouveau fichier: doc/html/search/all_d.js
 	nouveau fichier: doc/html/search/classes_0.html
 	nouveau fichier: doc/html/search/classes_0.js
 	nouveau fichier: doc/html/search/classes_1.html
 	nouveau fichier: doc/html/search/classes_1.js
 	nouveau fichier: doc/html/search/classes_2.html
 	nouveau fichier: doc/html/search/classes_2.js
 	nouveau fichier: doc/html/search/classes_3.html
 	nouveau fichier: doc/html/search/classes_3.js
 	nouveau fichier: doc/html/search/classes_4.html
 	nouveau fichier: doc/html/search/classes_4.js
 	nouveau fichier: doc/html/search/classes_5.html
 	nouveau fichier: doc/html/search/classes_5.js
 	nouveau fichier: doc/html/search/classes_6.html
 	nouveau fichier: doc/html/search/classes_6.js
 	nouveau fichier: doc/html/search/classes_7.html
 	nouveau fichier: doc/html/search/classes_7.js
 	nouveau fichier: doc/html/search/classes_8.html
 	nouveau fichier: doc/html/search/classes_8.js
 	nouveau fichier: doc/html/search/classes_9.html
 	nouveau fichier: doc/html/search/classes_9.js
 	nouveau fichier: doc/html/search/close.png
 	nouveau fichier: doc/html/search/functions_0.html
 	nouveau fichier: doc/html/search/functions_0.js
 	nouveau fichier: doc/html/search/functions_1.html
 	nouveau fichier: doc/html/search/functions_1.js
 	nouveau fichier: doc/html/search/functions_2.html
 	nouveau fichier: doc/html/search/functions_2.js
 	nouveau fichier: doc/html/search/functions_3.html
 	nouveau fichier: doc/html/search/functions_3.js
 	nouveau fichier: doc/html/search/functions_4.html
 	nouveau fichier: doc/html/search/functions_4.js
 	nouveau fichier: doc/html/search/functions_5.html
 	nouveau fichier: doc/html/search/functions_5.js
 	nouveau fichier: doc/html/search/functions_6.html
 	nouveau fichier: doc/html/search/functions_6.js
 	nouveau fichier: doc/html/search/functions_7.html
 	nouveau fichier: doc/html/search/functions_7.js
 	nouveau fichier: doc/html/search/mag_sel.png
 	nouveau fichier: doc/html/search/namespaces_0.html
 	nouveau fichier: doc/html/search/namespaces_0.js
 	nouveau fichier: doc/html/search/nomatches.html
 	nouveau fichier: doc/html/search/pages_0.html
 	nouveau fichier: doc/html/search/pages_0.js
 	nouveau fichier: doc/html/search/search.css
 	nouveau fichier: doc/html/search/search.js
 	nouveau fichier: doc/html/search/search_l.png
 	nouveau fichier: doc/html/search/search_m.png
 	nouveau fichier: doc/html/search/search_r.png
 	nouveau fichier: doc/html/sync_off.png
 	nouveau fichier: doc/html/sync_on.png
 	nouveau fichier: doc/html/tab_a.png
 	nouveau fichier: doc/html/tab_b.png
 	nouveau fichier: doc/html/tab_h.png
 	nouveau fichier: doc/html/tab_s.png
 	nouveau fichier: doc/html/tabs.css
 	nouveau fichier: doc/latex/Makefile
 	nouveau fichier: doc/latex/annotated.tex
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_config_error.eps
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_config_error.pdf
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_config_error.tex
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_load_conf.eps
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_load_conf.pdf
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_load_conf.tex
 	nouveau fichier: doc/latex/classm_1_1log_1_1_log.eps
 	nouveau fichier: doc/latex/classm_1_1log_1_1_log.pdf
 	nouveau fichier: doc/latex/classm_1_1log_1_1_log.tex
 	nouveau fichier: doc/latex/classm_1_1log_1_1_single_level_filter.eps
 	nouveau fichier: doc/latex/classm_1_1log_1_1_single_level_filter.pdf
 	nouveau fichier: doc/latex/classm_1_1log_1_1_single_level_filter.tex
 	nouveau fichier: doc/latex/classm_1_1log_1_1bcolors.tex
 	nouveau fichier: doc/latex/classm_1_1log_1_1lvl.tex
 	nouveau fichier: doc/latex/classm_1_1login_1_1_login.eps
 	nouveau fichier: doc/latex/classm_1_1login_1_1_login.pdf
 	nouveau fichier: doc/latex/classm_1_1login_1_1_login.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_base_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_base_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_base_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_disconnection_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_disconnection_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_disconnection_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_global_vars.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_main_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_main_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_main_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_unauthorized_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_unauthorized_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_unauthorized_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_video_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_video_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_video_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_w_socket_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_w_socket_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_w_socket_handler.tex
 	nouveau fichier: doc/latex/dir_060e062f70a4a7965197b0046a5699c1.tex
 	nouveau fichier: doc/latex/dir_b9f9e361513c934f24957ae0a3633a41.tex
 	nouveau fichier: doc/latex/dir_cc95ad066e2e041bbee057a78f4a0df2.tex
 	nouveau fichier: doc/latex/doxygen.sty
 	nouveau fichier: doc/latex/hierarchy.tex
 	nouveau fichier: doc/latex/md__r_e_a_d_m_e.tex
 	nouveau fichier: doc/latex/namespaces.tex
 	nouveau fichier: doc/latex/namespacesuper_tornado.tex
 	nouveau fichier: doc/latex/refman.tex
 	nouveau fichier: doc/link lol.gif
 	nouveau fichier: doc/man/man3/_home_sidya_Documents_iut_ptut_m_.3
 	nouveau fichier: doc/man/man3/_home_sidya_Documents_iut_ptut_v_.3
 	nouveau fichier: doc/man/man3/_home_sidya_Documents_iut_ptut_v_js_.3
 	nouveau fichier: doc/man/man3/m_loadConf_ConfigError.3
 	nouveau fichier: doc/man/man3/m_loadConf_LoadConf.3
 	nouveau fichier: doc/man/man3/m_log_Log.3
 	nouveau fichier: doc/man/man3/m_log_SingleLevelFilter.3
 	nouveau fichier: doc/man/man3/m_log_bcolors.3
 	nouveau fichier: doc/man/man3/m_log_lvl.3
 	nouveau fichier: doc/man/man3/m_login_Login.3
 	nouveau fichier: doc/man/man3/md__r_e_a_d_m_e.3
 	nouveau fichier: doc/man/man3/superTornado.3
 	nouveau fichier: doc/man/man3/superTornado_BaseHandler.3
 	nouveau fichier: doc/man/man3/superTornado_DisconnectionHandler.3
 	nouveau fichier: doc/man/man3/superTornado_GlobalVars.3
 	nouveau fichier: doc/man/man3/superTornado_MainHandler.3
 	nouveau fichier: doc/man/man3/superTornado_UnauthorizedHandler.3
 	nouveau fichier: doc/man/man3/superTornado_VideoHandler.3
 	nouveau fichier: doc/man/man3/superTornado_WSocketHandler.3
 	renommé:         m/fichier/autorise -> m/fichier/allow
 	supprimé:        m/fichier/log
 	modifié:         m/loadConf.py
 	modifié:         m/log.py
 	modifié:         m/login.py
 	modifié:         superTornado.py
 	modifié:         v/index.html
 	modifié:         v/video.html
2014-03-18 11:36:31 +01:00

100 lines
2.8 KiB
Python

import logging
from logging.handlers import RotatingFileHandler
class bcolors:
"""
Define constant value color for different level
"""
DEBUG = '\033[94m'
INFO = '\033[95m'
SUCCESS = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
class lvl:
"""
Define constant value for level log
"""
NOTSET = 0
DEBUG = 10
INFO = 20
SUCCESS = 25
WARNING = 30
FAIL = 40
class SingleLevelFilter(logging.Filter):
"""Filter for one level"""
def __init__(self, passlevel, reject):
"""
Constructor
passlevel : level to filter
reject : true on reject state
"""
self.passlevel = passlevel
self.reject = reject
class Log(object):
"""
Log Manager
"""
def __init__(self) :
"""
Define 3 differents log :
activity.log -> all activity server
warning.log -> only warning server (including illegal acess)
error.log' -> error server
Write all message on terminal too
"""
logging.addLevelName(lvl.SUCCESS, "SUCCESS")
self.logger = logging.getLogger()
self.logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)-15s :: %(levelname)s :: %(message)s')
file_handler = RotatingFileHandler('log/activity.log', 'a', 1000000, 1)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
self.logger.addHandler(file_handler)
file_handler_warning = RotatingFileHandler('log/warning.log', 'a', 1000000, 1)
f1 = SingleLevelFilter(logging.WARNING, False)
file_handler_warning.addFilter(f1)
file_handler_warning.setFormatter(formatter)
self.logger.addHandler(file_handler_warning)
file_handler_error = RotatingFileHandler('log/error.log', 'a', 1000000, 1)
file_handler_error.setLevel(logging.ERROR)
file_handler_error.setFormatter(formatter)
self.logger.addHandler(file_handler_error)
steam_handler = logging.StreamHandler()
steam_handler.setLevel(logging.NOTSET)
self.logger.addHandler(steam_handler)
def printL(self,pMsg,pLvl):
"""
Add color and write in log with an define level
pMsg : message to write in log
pLvl : level of log message
"""
if pLvl == lvl.DEBUG :
pMsg = bcolors.DEBUG + pMsg + bcolors.ENDC
elif pLvl == lvl.INFO :
pMsg = bcolors.INFO + pMsg + bcolors.ENDC
elif pLvl == lvl.SUCCESS :
pMsg = bcolors.SUCCESS + pMsg + bcolors.ENDC
elif pLvl == lvl.WARNING :
pMsg = bcolors.WARNING + pMsg + bcolors.ENDC
elif pLvl == lvl.FAIL :
pMsg = bcolors.FAIL + pMsg + bcolors.ENDC
self.logger.log(pLvl,pMsg)