From a4693e6f2c2ceadc2c15aababd695d727a9acc94 Mon Sep 17 00:00:00 2001 From: Satoshi Kobayashi Date: Mon, 21 Oct 2013 17:03:29 +0900 Subject: [PATCH] To specify a logging configuration file Setup of logging from a configuration file. Refer to the following for the details of a configuration file. http://docs.python.org/2/library/logging.config.html Signed-off-by: Satoshi Kobayashi Signed-off-by: FUJITA Tomonori --- ryu/log.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/ryu/log.py b/ryu/log.py index d02d4fc1..6c0d3279 100644 --- a/ryu/log.py +++ b/ryu/log.py @@ -14,12 +14,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import print_function from oslo.config import cfg import inspect import logging +import logging.config import logging.handlers import os import sys +import ConfigParser CONF = cfg.CONF @@ -32,7 +35,9 @@ CONF.register_cli_opts([ cfg.StrOpt('log-dir', default=None, help='log file directory'), cfg.StrOpt('log-file', default=None, help='log file name'), cfg.StrOpt('log-file-mode', default='0644', - help='default log file permission') + help='default log file permission'), + cfg.StrOpt('log-config-file', default=None, + help='Path to a logging config file to use') ]) @@ -62,6 +67,17 @@ def init_log(): global _EARLY_LOG_HANDLER log = logging.getLogger() + + if CONF.log_config_file: + try: + logging.config.fileConfig(CONF.log_config_file, + disable_existing_loggers=True) + except ConfigParser.Error as e: + print('Failed to parse %s: %s' % (CONF.log_config_file, e), + file=sys.stderr) + sys.exit(2) + return + if CONF.use_stderr: log.addHandler(logging.StreamHandler(sys.stderr)) if _EARLY_LOG_HANDLER is not None: