2017-09-21 1 views
0

Python 2.7mehrere Argumente logging.debug

Ich bin derzeit für die Protokollierung mehrere Codezeilen verwenden, wie unten:

timestr = time.strftime("%Y%m%d_%H%M%S") 
print timestr 
logging.basicConfig(level=logging.DEBUG, 
        format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', 
        datefmt='%m-%d %H:%M', 
        filename='D://my_code_3/logging/'+timestr+'_XFR.log', 
        filemode='w') 
#define a Handler which writes INFO messages or higher to the sys.stderr 
console = logging.StreamHandler() 
console.setLevel(logging.INFO) 
#set 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) 
#add the handler to the root logger 
logging.getLogger('').addHandler(console) 

name = raw_input("Please enter your name.") 
print 'Hi ', name, 'Please go ahead and transfer files - Press Enter' 
print 
##### 
now = datetime.datetime.now() 
logging.debug ('File was transferred by:') 
logging.debug(name) 
logging.debug('The transfer took palce on:') 
logging.info(now.strftime("%Y-%m-%d %H:%M")) 

Ich mag eher eine einzige Zeile verwenden einige, was ähnlich wie:

logging.debug (('File was transferred by:'), name) 

Aber diese Syntax ist falsch. Bitte helfen Sie mir, das richtig zu machen. /oder, schlagen Sie mir bitte eine andere Methode vor, um Daten zu strömen, um nur Datei/zu trösten und beide zu protokollieren.

vielen dank. +

Antwort

0

Sie können Zeichenfolge verwenden Formatierung

logging.debug ('File was transferred by: {}'.format(name)) 

Das ist sauber und gut lesbar

Oder logging.debug ('File was transferred by: %s' % name)

Sie können mehr lesen über sie Python format string syntax docs

+0

'@ vinny': danke. Es funktioniert richtig. Ich werde die Referenz lesen müssen, die Sie zur Verfügung gestellt haben, um die richtige Syntax für den 'logging.debug' zu finden ('Die Übertragung erfolgte von:') logging.info (now.strftime ("% Y-% m-% d% H:% M "))' – anatta

+0

im Grunde, Sie setzen einen Platzhalter '{}' und bieten, was in dort in der 'format()' Methode – Vinny

+0

'@ vinny' eingegeben werden: Danke nochmal. Es hat richtig funktioniert. – anatta