[Yum-devel] [PATCH] Fix syslog_indent and syslog_facility settings, improve syslog format.
James Antill
james at fedoraproject.org
Wed Mar 24 19:04:08 UTC 2010
On Wed, 2010-03-24 at 18:33 +0200, Ville Skyttä wrote:
> ---
> yum/logginglevels.py | 59 ++++++++++++++++++++++---------------------------
> 1 files changed, 27 insertions(+), 32 deletions(-)
>
> diff --git a/yum/logginglevels.py b/yum/logginglevels.py
> index 3d82b55..1de8ef0 100644
> --- a/yum/logginglevels.py
> +++ b/yum/logginglevels.py
> @@ -45,28 +45,27 @@ logging.addLevelName(DEBUG_4, "DEBUG_4")
> __NO_LOGGING = 100
> logging.raiseExceptions = False
>
> -import syslog as syslog_module
> -
> syslog = None
>
> -# Mostly borrowed from original yum-updated.py
> -_syslog_facility_map = { "KERN" : syslog_module.LOG_KERN,
> - "USER" : syslog_module.LOG_USER,
> - "MAIL" : syslog_module.LOG_MAIL,
> - "DAEMON" : syslog_module.LOG_DAEMON,
> - "AUTH" : syslog_module.LOG_AUTH,
> - "LPR" : syslog_module.LOG_LPR,
> - "NEWS" : syslog_module.LOG_NEWS,
> - "UUCP" : syslog_module.LOG_UUCP,
> - "CRON" : syslog_module.LOG_CRON,
> - "LOCAL0" : syslog_module.LOG_LOCAL0,
> - "LOCAL1" : syslog_module.LOG_LOCAL1,
> - "LOCAL2" : syslog_module.LOG_LOCAL2,
> - "LOCAL3" : syslog_module.LOG_LOCAL3,
> - "LOCAL4" : syslog_module.LOG_LOCAL4,
> - "LOCAL5" : syslog_module.LOG_LOCAL5,
> - "LOCAL6" : syslog_module.LOG_LOCAL6,
> - "LOCAL7" : syslog_module.LOG_LOCAL7,}
> +# Mostly borrowed from original yum-updatesd.py
> +_syslog_facility_map = { "KERN" : logging.handlers.SysLogHandler.LOG_KERN,
> + "USER" : logging.handlers.SysLogHandler.LOG_USER,
> + "MAIL" : logging.handlers.SysLogHandler.LOG_MAIL,
> + "DAEMON" : logging.handlers.SysLogHandler.LOG_DAEMON,
> + "AUTH" : logging.handlers.SysLogHandler.LOG_AUTH,
> + "LPR" : logging.handlers.SysLogHandler.LOG_LPR,
> + "NEWS" : logging.handlers.SysLogHandler.LOG_NEWS,
> + "UUCP" : logging.handlers.SysLogHandler.LOG_UUCP,
> + "CRON" : logging.handlers.SysLogHandler.LOG_CRON,
> + "LOCAL0" : logging.handlers.SysLogHandler.LOG_LOCAL0,
> + "LOCAL1" : logging.handlers.SysLogHandler.LOG_LOCAL1,
> + "LOCAL2" : logging.handlers.SysLogHandler.LOG_LOCAL2,
> + "LOCAL3" : logging.handlers.SysLogHandler.LOG_LOCAL3,
> + "LOCAL4" : logging.handlers.SysLogHandler.LOG_LOCAL4,
> + "LOCAL5" : logging.handlers.SysLogHandler.LOG_LOCAL5,
> + "LOCAL6" : logging.handlers.SysLogHandler.LOG_LOCAL6,
> + "LOCAL7" : logging.handlers.SysLogHandler.LOG_LOCAL7,
> + }
Could you change all this to just do:
> -import syslog as syslog_module
> +syslog_module = logging.handlers.SysLogHandler
...it's a little evil, but it'll save 50% on the patch.
> def syslogFacilityMap(facility):
> if type(facility) == int:
> return facility
> @@ -75,7 +74,7 @@ def syslogFacilityMap(facility):
> elif (facility.upper().startswith("LOG_") and
> facility[4:].upper() in _syslog_facility_map):
> return _syslog_facility_map[facility[4:].upper()]
> - return syslog_module.LOG_USER
> + return _syslog_facility_map["USER"]
>
> def logLevelFromErrorLevel(error_level):
> """ Convert an old-style error logging level to the new style. """
> @@ -140,7 +139,6 @@ def doLoggingSetup(debuglevel, errorlevel,
> return
>
> plainformatter = logging.Formatter("%(message)s")
> - syslogformatter = logging.Formatter("yum: %(message)s")
>
> console_stdout = logging.StreamHandler(sys.stdout)
> console_stdout.setFormatter(plainformatter)
> @@ -158,20 +156,17 @@ def doLoggingSetup(debuglevel, errorlevel,
> filelogger.setLevel(logging.INFO)
> filelogger.propagate = False
>
> - log_dev = syslog_device
> global syslog
> - if os.path.exists(log_dev):
> + if os.path.exists(syslog_device):
> try:
> - syslog = logging.handlers.SysLogHandler(log_dev)
> - syslog.setFormatter(syslogformatter)
> - filelogger.addHandler(syslog)
> - if syslog_ident is not None or syslog_facility is not None:
> - ident = syslog_ident or ''
> - facil = syslog_facility or 'LOG_USER'
> - syslog_module.openlog(ident, 0, syslogFacilityMap(facil))
> + facil = syslogFacilityMap(syslog_facility or "USER")
> + syslog = logging.handlers.SysLogHandler(syslog_device, facil)
> except socket.error:
> if syslog is not None:
> syslog.close()
> + else:
> + setLoggingApp(syslog_ident or "yum")
> + filelogger.addHandler(syslog)
ACK.
Although the commit should probably say that we are now allowing remote
syslog "devices".
> _added_handlers = True
>
> if debuglevel is not None:
> @@ -201,5 +196,5 @@ def setFileLog(uid, logfile):
>
> def setLoggingApp(app):
> if syslog:
> - syslogformatter = logging.Formatter("yum(%s): "% (app,) + "%(message)s")
> + syslogformatter = logging.Formatter(app + "[%(process)d]: %(message)s")
> syslog.setFormatter(syslogformatter)
More information about the Yum-devel
mailing list