I want to print the current timestamp, when an event succeeded or not in my python script. By only adding…
datetime.datetime.now().strftime("%d.%b %Y %H:%M:%S")
…. at the beginning of each line, te same date appears in every line
[INFO] 04.Feb 2015 20:49:41: cl1 [ OK ] 04.Feb 2015 20:49:41: 8.8.8.8 ONLINE! [INFO] 04.Feb 2015 20:49:41: cl2 [ OK ] 04.Feb 2015 20:49:41: 8.8.8.8 ONLINE! [INFO] 04.Feb 2015 20:49:41: cl3 [ OK ] 04.Feb 2015 20:49:41: 8.8.8.8 ONLINE!
(I added time.sleep(5)
in between)
My next idea was to create a function, calling the current time, but i’m failing at embedding this function to the print
command.
File rs.py
OK = "[" + bc.OKGREEN + " OK " + bc.ENDC + "] " + datetime.datetime.now().strftime("%d.%b %Y %H:%M:%S") INFO = "[" + bc.OKBLUE + "INFO" + bc.ENDC + "] " + datetime.datetime.now().strftime("%d.%b %Y %H:%M:%S") WARN = "[" + bc.WARN + "WARN" + bc.ENDC + "] " + datetime.datetime.now().strftime("%d.%b %Y %H:%M:%S") ERR = "[" + bc.ERR + "FAIL" + bc.ENDC + "] " + datetime.datetime.now().strftime("%d.%b %Y %H:%M:%S") DEB = "[" + bc.HEADER + "DEBUG" + bc.ENDC + "] " + datetime.datetime.now().strftime("%d.%b %Y %H:%M:%S")
File myapp.py
import rs # importing rs.py print rs.OK + hostname + "is up!" time.sleep(3) print rs.ERR+ hostname + "is down!"
Is printing:
>>> [INFO] 04.Feb 2015 20:49:41: xxx is up! >>> [ERR ] 04.Feb 2015 20:49:41: xxx is down!
Advertisement
Answer
Before the first time you log anything do this:
logging.basicConfig( format='%(asctime)s %(levelname)-8s %(message)s', level=logging.INFO, datefmt='%Y-%m-%d %H:%M:%S')
Example on the REPL:
>>> import logging >>> logging.basicConfig( ... format='%(asctime)s %(levelname)-8s %(message)s', ... level=logging.INFO, ... datefmt='%Y-%m-%d %H:%M:%S') >>> >>> logging.info('an info messge') 2017-05-25 00:58:28 INFO an info messge >>> logging.debug('a debug messag is not shown') >>>