diff options
Diffstat (limited to 'geo-replication/syncdaemon/gsyncd.py')
| -rw-r--r-- | geo-replication/syncdaemon/gsyncd.py | 21 | 
1 files changed, 19 insertions, 2 deletions
diff --git a/geo-replication/syncdaemon/gsyncd.py b/geo-replication/syncdaemon/gsyncd.py index b460c6c6dbc..7fcc3165ac9 100644 --- a/geo-replication/syncdaemon/gsyncd.py +++ b/geo-replication/syncdaemon/gsyncd.py @@ -12,7 +12,7 @@ import optparse  import fcntl  import fnmatch  from optparse import OptionParser, SUPPRESS_HELP -from logging import Logger +from logging import Logger, handlers  from errno import EEXIST, ENOENT  from ipaddr import IPAddress, IPNetwork @@ -58,7 +58,24 @@ class GLogger(Logger):          logging.root = cls("root", lvl)          logging.setLoggerClass(cls)          logging.getLogger().handlers = [] -        logging.basicConfig(**lprm) +        logging.getLogger().setLevel(lprm['level']) + +        if 'filename' in lprm: +            try: +                logging_handler = handlers.WatchedFileHandler(lprm['filename']) +                formatter = logging.Formatter(fmt=lprm['format'], +                datefmt=lprm['datefmt']) +                logging_handler.setFormatter(formatter) +                logging.getLogger().addHandler(logging_handler) +            except AttributeError: +                # Python version < 2.6 will not have WatchedFileHandler +                # so fallback to logging without any handler. +                # Note: logrotate will not work if Python version is < 2.6 +                logging.basicConfig(**lprm) +        else: +            # If filename not passed(not available in lprm) then it may be +            # streaming.(Ex: {"stream": "/dev/stdout"}) +            logging.basicConfig(**lprm)      @classmethod      def _gsyncd_loginit(cls, **kw):  | 
