2017-10-16 37 views
-1

Ci-dessous est un module de journalisation que j'ai écrit dans le but de créer rapidement des enregistreurs personnalisés dans d'autres scripts avec seulement quelques lignes.Module de journalisation personnalisé Python3 (méthode réutilisable)

import logging 
def setup(filepath, filemode): 
    logging.basicConfig(level=logging.DEBUG, 
         format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', 
         datefmt='%m-%d %H:%M', filename=filepath, filemode=filemode) 

    # A handler that writes to the console. def console(level,logger): 
    console = logging.StreamHandler() 
    console.setLevel(level=level) 
    # Sets a format which is simpler for console use. 
    formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') 
    # Tell the handler to use this format. 
    console.setFormatter(formatter) 
    # Adds the handler to the root logger. 
    logging.getLogger(logger).addHandler(console) 

Voici comment j'appelle ce module à partir d'autres scripts:

import ddlog 
# Filepath, logger, and console handler 
logpath = os.getcwd() + '//logs/'+hostlist+'.log' 
logging = ddlog.setup(logpath, 'w') 
ddlog.console(INFO,logging) 

logging.error("[-] Failed to Authenticate.") 
logging.log(INFO,'[+] successfully connected to ' + host) 

Lorsque je tente d'exécuter ce script c'est ce qui se passe sur la trace:

File "login.py", line 23, in main 
logging.error("[-] Failed to Authenticate.", exc_info=True) 
AttributeError: 'NoneType' object has no attribute 'error' 

Toutes les idées ou l'expérience avec la création de simples enregistreurs?

Répondre

0

Votre fonction de configuration ne semble rien retourner. Donc logging = ddlog.setup() est égal à None.