Files
stacks-puppet-node/blockstack_search/crawler/common.py
2014-01-28 17:31:25 -05:00

62 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python
#-----------------------
# Copyright 2013 Halfmoon Labs, Inc.
# All Rights Reserved
#-----------------------
import json
from json import JSONEncoder
from bson.objectid import ObjectId
import logging
from config import DEBUG
#-------------------------
def get_logger(log_name=None,log_type='stream'):
if(DEBUG):
log = logging.getLogger(log_name)
log.setLevel(logging.DEBUG)
formatter_stream = logging.Formatter('[%(levelname)s] %(message)s')
handler_stream = logging.StreamHandler()
handler_stream.setFormatter(formatter_stream)
formatter_file = logging.Formatter('[%(levelname)s] %(message)s')
handler_file = logging.FileHandler('log/debug.log',mode='w')
handler_file.setFormatter(formatter_file)
if(log_type == 'stream'):
log.addHandler(handler_stream)
elif(log_type == 'file'):
log.addHandler(handler_file)
else:
log = None
return log
#-------------------------
#common logger
log = get_logger()
class MongoEncoder(JSONEncoder):
def default(self, obj, **kwargs):
if isinstance(obj, ObjectId):
return str(obj)
else:
return JSONEncoder.default(obj, **kwargs)
#-------------------------
def pretty_dump(input):
return json.dumps(input, cls=MongoEncoder, sort_keys=False, indent=4, separators=(',', ': '))
#-------------------------
def pretty_print(input):
print pretty_dump(input)
#---------------------------------
def error_reply(msg):
reply = {}
reply['status'] = -1
reply['message'] = "ERROR: " + msg
return pretty_dump(reply)