socket发送syslog不能获得级别

2019-10-12 走过路过 2041 0

使用logger可以设置debug, info, warning,error等级别,但直接通过socket方式发送日志无法获得级别。
经过查看logger的源代码发现,其实logger也是使用socket来发送日志,如果要使接收端能解析日志级别,需要加指定的前缀。
例如:'<%d>' + msg

%d为一个整数值,获得方式如下:
(facility << 3) | priority

facility和priority的值如下:
LOG_EMERG     = 0       #  system is unusable
LOG_ALERT     = 1       #  action must be taken immediately
LOG_CRIT      = 2       #  critical conditions
LOG_ERR       = 3       #  error conditions
LOG_WARNING   = 4       #  warning conditions
LOG_NOTICE    = 5       #  normal but significant condition
LOG_INFO      = 6       #  informational
LOG_DEBUG     = 7       #  debug-level messages

#  facility codes
LOG_KERN      = 0       #  kernel messages
LOG_USER      = 1       #  random user-level messages
LOG_MAIL      = 2       #  mail system
LOG_DAEMON    = 3       #  system daemons
LOG_AUTH      = 4       #  security/authorization messages
LOG_SYSLOG    = 5       #  messages generated internally by syslogd
LOG_LPR       = 6       #  line printer subsystem
LOG_NEWS      = 7       #  network news subsystem
LOG_UUCP      = 8       #  UUCP subsystem
LOG_CRON      = 9       #  clock daemon
LOG_AUTHPRIV  = 10      #  security/authorization messages (private)
LOG_FTP       = 11      #  FTP daemon

#  other codes through 15 reserved for system use
LOG_LOCAL0    = 16      #  reserved for local use
LOG_LOCAL1    = 17      #  reserved for local use
LOG_LOCAL2    = 18      #  reserved for local use
LOG_LOCAL3    = 19      #  reserved for local use
LOG_LOCAL4    = 20      #  reserved for local use
LOG_LOCAL5    = 21      #  reserved for local use
LOG_LOCAL6    = 22      #  reserved for local use
LOG_LOCAL7    = 23      #  reserved for local use

priority_names = {
    "alert":    LOG_ALERT,
    "crit":     LOG_CRIT,
    "critical": LOG_CRIT,
    "debug":    LOG_DEBUG,
    "emerg":    LOG_EMERG,
    "err":      LOG_ERR,
    "error":    LOG_ERR,        #  DEPRECATED
    "info":     LOG_INFO,
    "notice":   LOG_NOTICE,
    "panic":    LOG_EMERG,      #  DEPRECATED
    "warn":     LOG_WARNING,    #  DEPRECATED
    "warning":  LOG_WARNING,
    }

facility_names = {
    "auth":     LOG_AUTH,
    "authpriv": LOG_AUTHPRIV,
    "cron":     LOG_CRON,
    "daemon":   LOG_DAEMON,
    "ftp":      LOG_FTP,
    "kern":     LOG_KERN,
    "lpr":      LOG_LPR,
    "mail":     LOG_MAIL,
    "news":     LOG_NEWS,
    "security": LOG_AUTH,       #  DEPRECATED
    "syslog":   LOG_SYSLOG,
    "user":     LOG_USER,
    "uucp":     LOG_UUCP,
    "local0":   LOG_LOCAL0,
    "local1":   LOG_LOCAL1,
    "local2":   LOG_LOCAL2,
    "local3":   LOG_LOCAL3,
    "local4":   LOG_LOCAL4,
    "local5":   LOG_LOCAL5,
    "local6":   LOG_LOCAL6,
    "local7":   LOG_LOCAL7,
    }
相关推荐
全部评论 最新评论 最早评论
还没有用户评论

联系我们

微信公众号
打赏作者