mirror of
https://github.com/alexgo-io/stacks-puppet-node.git
synced 2026-06-19 06:25:58 +08:00
62 lines
1.6 KiB
Python
Executable File
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)
|