jmquintana79
4/21/2016 - 6:41 AM

logging

Python library for logging messages.

import logging

"""
Homepage manual: https://docs.python.org/2/howto/logging.html

Levels: When it’s used
  DEBUG:	Detailed information, typically of interest only when diagnosing problems.
  INFO:	Confirmation that things are working as expected.
  WARNING:	An indication that something unexpected happened, or indicative of some problem in the near future (e.g. ‘disk space low’). The software is still working as expected.
  ERROR:	Due to a more serious problem, the software has not been able to perform some function.
  CRITICAL:	A serious error, indicating that the program itself may be unable to continue running.

"""

# logging into file log
logging.basicConfig(filename='example.log',level=logging.DEBUG) # level = minimum level to be displayedd.
logging.info('Start ...')

# logging by screen
logging.basicConfig(level=logging.INFO)
logging.info("Start ...")

# logging by screen with format
FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
FORMAT = '%(levelname)s: %(message)s'
logging.basicConfig(
    level=logging.INFO, 
    format=FORMAT, 
)

# close logger
try:
    logging.flust()
    logging.close()
except:
    pass

# get object (logger)
logger = logging.getLogger(__name__)
import logging
# config
logging.basicConfig(level=logging.INFO)
# get object (logger)
logger = logging.getLogger(__name__)
# use objecty
logger.info("Start ...")
# Reference: https://stackoverflow.com/questions/16947234/python-logging-across-multiple-modules

### MAIN SCRIPT: myapp.py ######################################################
import logging
import mylib

def main():
    logging.basicConfig(filename='myapp.log', level=logging.INFO)
    logging.info('Started')
    mylib.do_something()
    logging.info('Finished')

if __name__ == '__main__':
    main()


### MODULE SCRIPT: mylib.py ####################################################
import logging

def do_something():
    logging.info('Doing something from module')
    
    
### OUTPUT #####################################################################
"""
INFO:root:Started
INFO:root:Doing something from module
INFO:root:Finished
"""