[SEBA-157]
Separate Structlog logging config into it's own config file, so it can
be more easily changed during deployment
Change-Id: I1c8149690c65ad2e7e3f68688a4d538e56e29ac1
diff --git a/ofagent/main.py b/ofagent/main.py
index 06c2ae3..144a0ad 100755
--- a/ofagent/main.py
+++ b/ofagent/main.py
@@ -28,6 +28,7 @@
defs = dict(
config=os.environ.get('CONFIG', './ofagent.yml'),
+ logconfig=os.environ.get('LOGCONFIG', './logconfig.yml'),
consul=os.environ.get('CONSUL', 'localhost:8500'),
controller=os.environ.get('CONTROLLER', 'localhost:6653'),
external_host_address=os.environ.get('EXTERNAL_HOST_ADDRESS',
@@ -55,6 +56,15 @@
default=defs['config'],
help=_help)
+ _help = ('Path to logconfig.yml config file (default: %s). '
+ 'If relative, it is relative to main.py of voltha.'
+ % defs['logconfig'])
+ parser.add_argument('-l', '--logconfig',
+ dest='logconfig',
+ action='store',
+ default=defs['logconfig'],
+ help=_help)
+
_help = '<hostname>:<port> to consul agent (default: %s)' % defs['consul']
parser.add_argument(
'-C', '--consul', dest='consul', action='store',
@@ -172,8 +182,9 @@
return args
-def load_config(args):
- path = args.config
+def load_config(args, configname='config'):
+ argdict = vars(args)
+ path = argdict[configname]
if path.startswith('.'):
dir = os.path.dirname(os.path.abspath(__file__))
path = os.path.join(dir, path)
@@ -203,12 +214,14 @@
self.args = args = parse_args()
self.config = load_config(args)
+ self.logconfig = load_config(args, 'logconfig')
+
# May want to specify the gRPC timeout as an arg (in future)
# Right now, set a default value
self.grpc_timeout = 10
verbosity_adjust = (args.verbose or 0) - (args.quiet or 0)
- self.log = setup_logging(self.config.get('logging', {}),
+ self.log = setup_logging(self.logconfig,
args.instance_id,
verbosity_adjust=verbosity_adjust)