Exemple #1
0
 def __init__(self, cfg):
     super(Logger, self).__init__(cfg)
     access_handler = MongoHandler(level=INFO,
                                   collection='access-logs',
                                   **DB('MONGOLAB_URI').URI)
     error_handler = MongoHandler(level=INFO,
                                  collection='error-logs',
                                  **DB('MONGOLAB_URI').URI)
     access_handler.setFormatter(MongoFormatter())
     error_handler.setFormatter(MongoFormatter())
     self.access_log.addHandler(access_handler)
     self.access_log.setLevel(INFO)
     self.error_log.addHandler(error_handler)
     self.error_log.setLevel(INFO)
 def test_override_capped_collection(self):
     # Creating capped handler
     self.handler_capped = MongoHandler(
         host=self.host_name, database_name=self.database_name,
         collection=self.collection_name, capped=True,
         capped_max=self.capped_max)
     self.log.removeHandler(self.handler)
     self.log.addHandler(self.handler)
     self.log.info('test info')
     # Creating no capped handler
     self.handler_no_capped = MongoHandler(host=self.host_name,
                                           database_name=self.database_name,
                                           collection=self.collection_name)
     self.log.addHandler(self.handler_no_capped)
     self.log.info('test info')
Exemple #3
0
 def test_1_connect_failed(self):
     log4mongo.handlers._connection = None
     kwargs = {'connectTimeoutMS': 2000, 'serverselectiontimeoutms': 2000}
     if pymongo.version_tuple[0] < 3:
         with self.assertRaises(PyMongoError):
             MongoHandler(host='unknow_host',
                          database_name=self.database_name,
                          collection=self.collection_name,
                          **kwargs)
     else:
         with self.assertRaises(ServerSelectionTimeoutError):
             MongoHandler(host='unknow_host',
                          database_name=self.database_name,
                          collection=self.collection_name,
                          **kwargs)
Exemple #4
0
def setup_handlers():
    handler_id = 'log4mongo_handler'
    if handler_id not in __opts__:
        yield False

    config_fields = {
        'host': 'host',
        'port': 'port',
        'database_name': 'database_name',
        'collection': 'collection',
        'username': '******',
        'password': '******',
        'write_concern': 'w'
    }

    config_opts = {}
    for config_opt, arg_name in config_fields.iteritems():
        config_opts[arg_name] = __opts__[handler_id].get(config_opt)

    config_opts['level'] = LOG_LEVELS[__opts__[handler_id].get(
        'log_level', __opts__.get('log_level', 'error'))]

    handler = MongoHandler(formatter=FormatterWithHost(), **config_opts)

    yield handler
Exemple #5
0
 def test_connect(self):
     handler = MongoHandler(host='localhost',
                            database_name=self.database_name,
                            collection=self.collection_name)
     self.assertTrue(isinstance(handler, MongoHandler))
     self.handler.connection.drop_database(self.database_name)
     handler.close()
Exemple #6
0
 def _get_mongo_handler(self):
     handler = MongoHandler(
         host=os.environ.get('PYPE_LOG_MONGO_HOST'),
         port=int(os.environ.get('PYPE_LOG_MONGO_PORT')),
         database_name=os.environ.get('PYPE_LOG_MONGO_DB'),
         capped=True,
         formatter=PypeMongoFormatter())
     return handler
 def test_connect_failed_silent(self):
     handler = MongoHandler(host='unknow_host',
                            database_name=self.database_name,
                            collection=self.collection_name,
                            fail_silently=True)
     self.assertTrue(isinstance(handler, MongoHandler))
     self.handler.connection.drop_database(self.database_name)
     handler.close()
 def setUp(self):
     self.handler = MongoHandler(host=self.host_name, database_name=self.database_name,
                                 collection=self.collection_name, capped=True, capped_max=self.capped_max)
     self.log = logging.getLogger('testLogger')
     self.log.setLevel(logging.DEBUG)
     self.log.addHandler(self.handler)
     self.old_stderr = sys.stdout
     sys.stderr = StringIO()
    def test_emit_on_reconnect_existing_capped_collection(self):
        self.log.removeHandler(self.handler)
        handler = MongoHandler(host=self.host_name, database_name=self.database_name,
                                    collection=self.collection_name, capped=True, capped_max=self.capped_max)
        self.log.addHandler(handler)

        self.log.warning('test message')
        document = handler.collection.find_one({'message': 'test message', 'level': 'WARNING'})
        self.assertEqual(document['message'], 'test message')
        self.assertEqual(document['level'], 'WARNING')
Exemple #10
0
 def test_connect_failed_silent(self):
     log4mongo.handlers._connection = None
     kwargs = {'connectTimeoutMS': 2000, 'serverselectiontimeoutms': 2000}
     handler = MongoHandler(host='unknow_host',
                            database_name=self.database_name,
                            collection=self.collection_name,
                            fail_silently=True,
                            **kwargs)
     self.assertTrue(isinstance(handler, MongoHandler))
     self.handler.connection.drop_database(self.database_name)
     handler.close()
Exemple #11
0
 def __init__(self, cfg):
     super(GunicornLogger, self).__init__(cfg)
     if PRODUCTION:
         access_handler = MongoHandler(level=INFO,
                                       collection='access-log',
                                       **MONGOLAB_CONF_DICT)
         error_handler = MongoHandler(level=INFO,
                                      collection='error-log',
                                      **MONGOLAB_CONF_DICT)
         access_handler.setFormatter(MongoFormatter())
         error_handler.setFormatter(MongoFormatter())
         self.error_log.addHandler(error_handler)
         self.error_log.setLevel(INFO)
     else:
         access_handler = StreamHandler()
         access_handler.setFormatter(
             Formatter(
                 '%(asctime)s [%(process)d] [%(levelname)s/ACCESS] %(message)s',
                 '%Y.%m:%d %H:%M:%S'))
     self.access_log.addHandler(access_handler)
     self.access_log.setLevel(INFO)
Exemple #12
0
 def __init__(self, cfg):
     super(Logger, self).__init__(cfg)
     access_handler = MongoHandler(level=INFO,
                                   host=MONGOLAB.hostname,
                                   port=MONGOLAB.port,
                                   database_name=MONGOLAB.path[1:],
                                   collection='access-logs',
                                   username=MONGOLAB.username,
                                   password=MONGOLAB.password)
     error_handler = MongoHandler(level=INFO,
                                  host=MONGOLAB.hostname,
                                  port=MONGOLAB.port,
                                  database_name=MONGOLAB.path[1:],
                                  collection='error-logs',
                                  username=MONGOLAB.username,
                                  password=MONGOLAB.password)
     access_handler.setFormatter(MongoFormatter())
     error_handler.setFormatter(MongoFormatter())
     self.access_log.addHandler(access_handler)
     self.access_log.setLevel(INFO)
     self.error_log.addHandler(error_handler)
     self.error_log.setLevel(INFO)
Exemple #13
0
    def __init__(self, mongo_host, database_name='mongo_logs',
                 log_level='warning', send_mail=False, debug=False, mail_list=[]):
        self.logger = logging.getLogger('mongo_logger')
        self.logger.setLevel(levels.get('debug'))
        if send_mail:
            mail_handler = SMTPHandler('smtp.qq.com', '*****@*****.**', mail_list, 'HuiMouKe Server Error',
                                   ('*****@*****.**', 'nffzqgrokerxcaia'), ())
            mail_handler.setLevel(logging.ERROR)
            logging.root.addHandler(mail_handler)
        if not debug:
            mon = MongoHandler(host=mongo_host, database_name=database_name)
            mon.setLevel(levels.get(log_level, 'warning'))
            logging.root.addHandler(MongoHandler)

        # 给当前所有存在的handler重新设置规则
        [i.setFormatter(LogFormatter()) for i in logging.getLogger().handlers]
Exemple #14
0
def setup_logging(name):
    root_logger = getLogger(name)
    if PRODUCTION:
        handler = MongoHandler(level=DEBUG,
                               collection='application-log',
                               **MONGOLAB_CONF_DICT)
        handler.setFormatter(MongoFormatter())
    else:
        handler = StreamHandler()
        handler.setLevel(DEBUG)
        handler.setFormatter(
            Formatter(
                '%(asctime)s [%(process)d] [%(levelname)s/APPLICATION] %(message)s',
                '%Y.%m:%d %H:%M:%S'))
    root_logger.setLevel(DEBUG)
    root_logger.addHandler(handler)
Exemple #15
0
 def update_db_logger(self, DB_CONFIG):
     ''' update_db_logger '''
     # DB_CONFIG = conf_log.get('DB_CONFIG')
     if DB_CONFIG.get('host') and DB_CONFIG.get('port'):
         mdbhandler = MongoHandler(
             host=DB_CONFIG['host'],
             port=DB_CONFIG['port'],
             database_name=DB_CONFIG.get('dbname', 'pipeline_unknown'),
             collection=DB_CONFIG.get('collection', 'db_unknown'))
         logging.basicConfig(level=logging.DEBUG,
                             format='%(asctime)s %(message)s')
         mdbhandler.setLevel(logging.DEBUG)
         logger = logging.getLogger(DB_CONFIG['name'].replace('.', '_'))
         logger.addHandler(mdbhandler)
         return logger
     else:
         raise Exception("Can't update db logger, wrong configure file")
Exemple #16
0
def make_logger(name, collection='cnswd', level=logging.NOTSET):
    formatter = logging.Formatter(
        '%(asctime)s %(levelname)s %(name)s %(message)s')
    logger = logging.Logger(name)
    logger.addHandler(
        MongoHandler(level=level,
                     host=DB_HOST,
                     database_name='eventlog',
                     collection=collection if collection else name,
                     fail_silently=False,
                     capped_max=10000,
                     capped=True))
    ch = logging.StreamHandler()
    ch.setLevel(level)
    ch.setFormatter(formatter)
    logger.addHandler(ch)
    return logger
Exemple #17
0
    def __init__(self):
        self.logger = logging.getLogger('logman')
        self.logger.setLevel(logging.DEBUG)
        self.logger.addHandler(
            MongoHandler(host=os.environ['MONGO_URI'],
                         database_name=os.environ['MONGO_DATABASE']))

        # create console handler and set level to debug
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)

        # create formatter
        formatter = \
            logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

        # add formatter to ch
        ch.setFormatter(formatter)

        # add ch to logger
        self.logger.addHandler(ch)
Exemple #18
0
    def _get_mongo_handler(self):
        components = _log_mongo_components()
        # Check existence of mongo connection before creating Mongo handler
        if log4mongo.handlers._connection is None:
            _bootstrap_mongo_log(components)

        kwargs = {
            "host": compose_url(**components),
            "database_name": LOG_DATABASE_NAME,
            "collection": LOG_COLLECTION_NAME,
            "username": components["username"],
            "password": components["password"],
            "capped": True,
            "formatter": PypeMongoFormatter()
        }
        if components["port"] is not None:
            kwargs["port"] = int(components["port"])
        if components["auth_db"]:
            kwargs["authentication_db"] = components["auth_db"]

        return MongoHandler(**kwargs)
Exemple #19
0
def make_log_handler(config, secret):
    log_format = logging.Formatter(
        "[%(asctime)s][%(filename)20s:%(lineno)4s - %(funcName)20s() ] %(message)s"
    )
    if config["backend"] == "file":
        Path(config["path"]).parent.mkdir(parents=True, exist_ok=True)
        handler = logging.FileHandler(filename=config["path"])
        handler.setFormatter(log_format)
    elif config["backend"] == "console":
        handler = logging.StreamHandler()
        handler.setFormatter(log_format)
    elif config["backend"] == "mongodb":
        ms = secret["mongodb"]
        handler = MongoHandler(
            host=ms["addr"],
            port=ms["port"],
            username=ms["username"],
            password=ms["password"],
            database_name=config["database"],
            collection=config["collection"],
        )
    return handler
Exemple #20
0
    def _get_mongo_handler(cls):
        cls.bootstrap_mongo_log()

        if not cls.use_mongo_logging:
            return

        components = cls.log_mongo_url_components
        kwargs = {
            "host": cls.log_mongo_url,
            "database_name": cls.log_database_name,
            "collection": cls.log_collection_name,
            "username": components["username"],
            "password": components["password"],
            "capped": True,
            "formatter": PypeMongoFormatter()
        }
        if components["port"] is not None:
            kwargs["port"] = int(components["port"])
        if components["auth_db"]:
            kwargs["authentication_db"] = components["auth_db"]

        return MongoHandler(**kwargs)
def setup_handlers():
    handler_id = "log4mongo_handler"
    if handler_id in __opts__:
        config_fields = {
            "host": "host",
            "port": "port",
            "database_name": "database_name",
            "collection": "collection",
            "username": "******",
            "password": "******",
            "write_concern": "w",
        }

        config_opts = {}
        for config_opt, arg_name in config_fields.items():
            config_opts[arg_name] = __opts__[handler_id].get(config_opt)

        config_opts["level"] = LOG_LEVELS[__opts__[handler_id].get(
            "log_level", __opts__.get("log_level", "error"))]

        handler = MongoHandler(formatter=FormatterWithHost(), **config_opts)
        yield handler
    else:
        yield False
Exemple #22
0

print 'logger2:'
logger2 = logging.getLogger('simple1')

logger2.debug('debug message')
logger2.info('info message')
logger2.warn('warn message')
logger2.error('error message')
logger2.critical('critical message')

import logging
from log4mongo.handlers import MongoHandler

logger = logging.getLogger('mongo_example')

mon = MongoHandler(host='localhost', database_name='db')
mon.setLevel(logging.WARNING)

ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)

logger.addHandler(mon)
logger.addHandler(ch)


logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
Exemple #23
0
import attrdict
from log4mongo.handlers import MongoHandler
from pymongo import MongoClient

with open("./modules/config/config.yml", 'r') as yamlfileobj:
    config = attrdict.AttrDict(yaml.safe_load(yamlfileobj))

logging.basicConfig(
    # datefmt='%y-%b-%d %H:%M:%S',
    datefmt='%H:%M:%S',
    format=
    '%(levelname)8s:[%(asctime)s][%(funcName)20s()][%(lineno)4s]: %(message)s',
    level=logging.DEBUG,
    handlers=[
        # logging.FileHandler(f'{config.dir.project}/log.log', mode='w+', encoding='utf8', delay=0),
        logging.StreamHandler(),
        MongoHandler(host=config.mongo.ip,
                     port=config.mongo.port,
                     username=config.mongo.username,
                     password=config.mongo.password,
                     authentication_db=config.mongo.authentication_db,
                     database_name='DataManager',
                     collection='log')
    ])

logger = logging.getLogger('DataGeters')

mongo_client = MongoClient(
    f'mongodb://{config.mongo.username}:{config.mongo.password}@{config.mongo.ip}:{config.mongo.port}'
    f'/?authSource={config.mongo.authentication_db}')
Exemple #24
0
import logging
from log.RequestFormatter import RequestFormatter

from web import home
from apis.home_api import Home

app = Flask(__name__)
config = app.config
config.from_object('config')
api = Api(app)

try:
    app.logger.info('mongodb get_db request complete')
    environment = config['ACTIVE_ENV']
    handler = MongoHandler(host=config['ENVS'][environment]['DB_HOST'],
                           port=config['ENVS'][environment]['DB_PORT'],
                           database_name=config['ENVS'][environment]['DB_NAME'])
    formatter = RequestFormatter()
    handler.setFormatter(formatter)
    logger = logging.getLogger(config["APP_NAME"])
    logger.setLevel(logging.INFO)
    logger.addHandler(handler)
    app.logger = logger
except pymongo.errors.ServerSelectionTimeoutError as e:
    message = "Could not connect to database"
    status = 403
    app.logger.error('Could not connect to database',e)
except Exception as e:
    message = "database connection error"
    status = 400
    app.logger.error('database error',e)
Exemple #25
0
def get_logger(name):
    logging.basicConfig(level=CONFIG['log']['level'])
    logger = logging.getLogger(name)
    logger.addHandler(
        MongoHandler(host=CONFIG['db']['ip'], capped=CONFIG['log']['capped']))
    return logger
Exemple #26
0
def get_mongo_logger():
    mongo_logger = logging.getLogger('hm_logger')
    if not len(mongo_logger.handlers):
        mongo_logger.addHandler(MongoHandler(host=MONGO_HOST, username = MONGO_USER, password = MONGO_PWD))
    mongo_logger.setLevel(logging.DEBUG)
    return mongo_logger
 def test_connect_failed(self):
     with self.assertRaises(AutoReconnect):
         MongoHandler(host='unknow_host',
                      database_name=self.database_name,
                      collection=self.collection_name)
Exemple #28
0
import logging
from log4mongo.handlers import MongoHandler

from . import logging_level
"""
https://docs.python.org/3.6/library/logging.html
"""
LEVEL_DICT = {
    'CRITICAL': logging.CRITICAL,  # 50
    'ERROR': logging.ERROR,  # 40
    'WARNING': logging.WARNING,  # 30
    'INFO': logging.INFO,  # 20
    'DEBUG': logging.DEBUG,  # 10
    'NOTSET': logging.NOTSET  # 0
}

logger = logging.getLogger('doutorfacil')

logger.setLevel(LEVEL_DICT[logging_level])

logger.addHandler(MongoHandler(host='localhost'))
Exemple #29
0
import hmac
import json
import logging
import smtplib
import threading
from email.mime.text import MIMEText

import Pyro4
import time
import zlib
from log4mongo.handlers import MongoHandler

# === PYTHON LOGGER ===
logger = logging.getLogger("app2")
handler = MongoHandler(host='localhost',
                       database_name='db_group4',
                       collection='log_group4',
                       port=27017)
logger.addHandler(handler)
FORMAT = '[%(asctime)s][%(levelname)s][%(module)s][%(funcName)s][line:%(lineno)d] %(message)s'
datestr = "%m/%d/%Y %I:%M:%S %p"
logging.basicConfig(format=FORMAT, datefmt=datestr, level=logging.DEBUG)


class App3:
    def __init__(self):
        self.__from_address = '*****@*****.**'
        self.__to_addresses = ['*****@*****.**']
        self.__subject = 'TEAM 4'

    def email_payload(self, i, body, subject, to_address, from_address):
        """
Exemple #30
0
# coding: utf-8

import logging
from logging.config import fileConfig
fileConfig('logger_config.conf')

from log4mongo.handlers import MongoHandler

logger = logging.getLogger()
mon = MongoHandler(host='121.42.33.117', database_name='mongo_logs')
logger.addHandler(mon)


def main():
    # logger.debug('I am here!')
    logger.debug('I am here!')
    logger.error('I am here!')


if __name__ == '__main__':
    main()