logging
log.py
#!/usr/bin/python
import logging
logging.basicConfig(level=logging.CRITICAL, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('This is a log message.')
logging.critical('This is a Critical log message.')
output:
python log.py
2015-09-29 20:43:15,057 - CRITICAL - This is a Critical log message.
log2.py
#!/usr/bin/python
import sys, getopt, logging
log_level = logging.CRITICAL
options, remainder = getopt.getopt(sys.argv[1:], 'v', ['verbose'])
cmdargs = {}
for opt, arg in options:
if opt in ('-v', '--verbose'):
log_level = logging.DEBUG
logging.basicConfig(level=log_level, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('This is a debug log message.')
logging.critical('This is a Critical log message.')
output:
python log2.py
2015-09-30 11:20:35,084 - CRITICAL - This is a Critical log message.
python log.py -v
2015-09-30 11:20:37,235 - DEBUG - This is a debug log message.
2015-09-30 11:20:37,236 - CRITICAL - This is a Critical log message.
logging with requests module
log.py
#!/usr/bin/python
import getpass, requests, json
import sys, getopt, logging
log_level = logging.CRITICAL
#log_level = logging.DEBUG
options, remainder = getopt.getopt(sys.argv[1:], 'v', ['verbose'])
cmdargs = {}
for opt, arg in options:
if opt in ('-v', '--verbose'):
log_level = logging.DEBUG
print "Current log level is: {}".format(logging.getLevelName(log_level))
logging.basicConfig(level=log_level, format='%(asctime)s - %(levelname)s - %(message)s')
#logging.debug('This is a debug log message.')
#logging.critical('This is a Critical log message.')
requests.packages.urllib3.disable_warnings()
BIGIP_USER = 'admin'
BIGIP_PASS=getpass.getpass("Please enter your password: ")
ACTIVE_NODE = 'f5.blah.com'
BIGIP_URL_BASE = 'https://{}/mgmt/tm'.format(ACTIVE_NODE)
bigip = requests.session()
bigip.auth = (BIGIP_USER, BIGIP_PASS)
bigip.verify = False
bigip.headers.update({'Content-Type' : 'application/json'})
def check_failoverstatus(SESSION, BIGIP_URL_BASE):
r = SESSION.get('{}/cm/failover-status'.format(BIGIP_URL_BASE))
if r.status_code == 200:
True
#the next line is not needed as it seems the requests module already logs DEBUG data how great is that :)
#logging.debug('Method:{} URL:{} Status code: {}'.format(r.request.method,r.request.url,r.status_code))
else:
logging.critical('Method:{} URL:{} Status code: {}'.format(r.request.method,r.request.url,r.status_code))
data = r.json()
device = {}
device['FailoverStatus'] = data['entries'].values()[0]['nestedStats']['entries']['status']['description']
device['version'] = data['selfLink'].split('?')[1].split('=')[1]
return device
def check_syncstatus(SESSION, BIGIP_URL_BASE):
r = SESSION.get('{}/cm/sync-status'.format(BIGIP_URL_BASE))
data = r.json()
LB_Sync_Status = data['entries'].values()[0]['nestedStats']['entries']['status']['description']
return LB_Sync_Status
BIGIP_FAILOVER_STATUS = check_failoverstatus(bigip, BIGIP_URL_BASE)
BIGIP_SYNC_STATUS = check_syncstatus(bigip, BIGIP_URL_BASE)