diff --git a/bin/umbra b/bin/umbra
index 7b68c1c..ed9172f 100755
--- a/bin/umbra
+++ b/bin/umbra
@@ -34,9 +34,17 @@ if __name__ == "__main__":
             action="store_const", default=logging.INFO, const=logging.DEBUG)
     arg_parser.add_argument('--version', action='version',
             version="umbra {}".format(umbra.__version__))
+    arg_parser.add_argument('--log_config_file', dest='log_config_file', default=None,
+            help='the path to the log config')
+
     args = arg_parser.parse_args(args=sys.argv[1:])
 
-    logging.basicConfig(stream=sys.stdout, level=args.log_level,
+    if (args.log_config_file is not None):
+        print(os.path.abspath(args.log_config_file))
+        import logging.config
+        logging.config.fileConfig(args.log_config_file)
+    else:
+        logging.basicConfig(stream=sys.stdout, level=args.log_level,
             format='%(asctime)s %(process)d %(levelname)s %(threadName)s %(name)s.%(funcName)s(%(filename)s:%(lineno)d) %(message)s')
 
     logging.info("umbra {} starting up".format(umbra.__version__))
diff --git a/logging.conf b/logging.conf
new file mode 100644
index 0000000..4d20a8c
--- /dev/null
+++ b/logging.conf
@@ -0,0 +1,30 @@
+[loggers]
+keys=root,umbra
+
+[handlers]
+keys=consoleHandler
+
+[formatters]
+keys=umbraFormatter
+
+[logger_root]
+level=INFO
+handlers=consoleHandler
+
+[logger_umbra]
+level=INFO
+handlers=consoleHandler
+qualname=umbra.controller.AmqpBrowserController
+propagate=0
+
+[handler_consoleHandler]
+class=StreamHandler
+level=DEBUG
+formatter=umbraFormatter
+args=(sys.stdout,)
+
+[formatter_umbraFormatter]
+format=%(asctime)s %(process)d %(levelname)s %(threadName)s %(pathname)s %(name)s.%(funcName)s(%(filename)s:%(lineno)d) %(message)s
+datefmt=
+
+