Skip to content
Snippets Groups Projects
Commit 21bff86e authored by Erik Reid's avatar Erik Reid
Browse files

init logging

parent 6b6db8d1
No related branches found
No related tags found
No related merge requests found
......@@ -30,7 +30,7 @@ from typing import Union
import click
import jsonschema
from brian_polling_manager import inventory, interfaces
from brian_polling_manager import inventory, interfaces, environment
logger = logging.getLogger(__name__)
......@@ -59,7 +59,7 @@ _DEFAULT_CONFIG = {
'{interface} {ifIndex}'),
}
},
'statedir': '/tmp/'
'statedir': '/tmp/',
}
CONFIG_SCHEMA = {
......@@ -111,7 +111,8 @@ CONFIG_SCHEMA = {
'minItems': 1
},
'sensu': {'$ref': '#/definitions/sensu'},
'statedir': {'type': 'string'}
'statedir': {'type': 'string'},
'logging': {'type': 'string'}
},
'required': ['inventory', 'sensu', 'statedir'],
'additionalProperties': False
......@@ -208,6 +209,8 @@ def _validate_config(ctx, param, file):
except jsonschema.ValidationError as e:
raise click.BadParameter(str(e))
environment.setup_logging(config.get('logging', None))
return config
......@@ -237,5 +240,4 @@ def main(config, force):
if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG)
main()
import json
import logging.config
import os
DEFAULT_LOGGING_FILENAME = os.path.join(
os.path.dirname(__file__),
'logging_default_config.json')
def setup_logging(filename=None):
"""
set up logging using the configured filename
"""
if not filename:
filename = DEFAULT_LOGGING_FILENAME
with open(filename) as f:
# TODO: this mac workaround should be removed ...
d = json.loads(f.read())
import platform
if platform.system() == 'Darwin':
d['handlers']['syslog_handler']['address'] = '/var/run/syslog'
logging.config.dictConfig(d)
# logging.config.dictConfig(json.loads(f.read()))
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"simple": {
"format": "%(asctime)s - %(name)s (%(lineno)d) - %(levelname)s - %(message)s"
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "simple",
"stream": "ext://sys.stdout"
},
"syslog_handler": {
"class": "logging.handlers.SysLogHandler",
"level": "DEBUG",
"address": "/dev/log",
"facility": "user",
"formatter": "simple"
},
"info_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "INFO",
"formatter": "simple",
"filename": "info.log",
"maxBytes": 10485760,
"backupCount": 20,
"encoding": "utf8"
},
"error_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "ERROR",
"formatter": "simple",
"filename": "errors.log",
"maxBytes": 10485760,
"backupCount": 20,
"encoding": "utf8"
}
},
"loggers": {
"brian_polling_manager": {
"level": "DEBUG",
"handlers": ["console", "syslog_handler"],
"propagate": false
}
},
"root": {
"level": "DEBUG",
"handlers": ["console", "syslog_handler"]
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment