diff options
Diffstat (limited to 'contrib/pg_logger/pg_logger.c')
-rw-r--r-- | contrib/pg_logger/pg_logger.c | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/contrib/pg_logger/pg_logger.c b/contrib/pg_logger/pg_logger.c deleted file mode 100644 index cb28bf5e7a2..00000000000 --- a/contrib/pg_logger/pg_logger.c +++ /dev/null @@ -1,106 +0,0 @@ -/* pg_logger: stdin-to-syslog gateway for postgresql. - * - * Copyright 2001 by Nathan Myers <ncm@nospam.cantrip.org> - * This software is distributed free of charge with no warranty of any kind. - * You have permission to make copies for any purpose, provided that (1) - * this copyright notice is retained unchanged, and (2) you agree to - * absolve the author of all responsibility for all consequences arising - * from any use. - */ - -#include <stdio.h> -#include <stddef.h> -#include <syslog.h> -#include <string.h> - -struct -{ - const char *tag; - int size; - int priority; -} tags[] = - -{ - { - "", 0, LOG_NOTICE - }, - { - "emerg:", sizeof("emerg"), LOG_EMERG - }, - { - "alert:", sizeof("alert"), LOG_ALERT - }, - { - "crit:", sizeof("crit"), LOG_CRIT - }, - { - "err:", sizeof("err"), LOG_ERR - }, - { - "error:", sizeof("error"), LOG_ERR - }, - { - "warning:", sizeof("warning"), LOG_WARNING - }, - { - "notice:", sizeof("notice"), LOG_NOTICE - }, - { - "info:", sizeof("info"), LOG_INFO - }, - { - "debug:", sizeof("debug"), LOG_DEBUG - } -}; - -int -main() -{ - char buf[301]; - int c; - char *pos = buf; - const char *colon = 0; - -#ifndef DEBUG - openlog("postgresql", LOG_CONS, LOG_LOCAL1); -#endif - while ((c = getchar()) != EOF) - { - if (c == '\r') - continue; - if (c == '\n') - { - int level = sizeof(tags) / sizeof(*tags); - char *bol; - - if (colon == 0 || (size_t) (colon - buf) > sizeof("warning")) - level = 1; - *pos = 0; - while (--level) - { - if (pos - buf >= tags[level].size - && strncmp(buf, tags[level].tag, tags[level].size) == 0) - break; - } - bol = buf + tags[level].size; - if (bol > buf && *bol == ' ') - ++bol; - if (pos - bol > 0) - { -#ifndef DEBUG - syslog(tags[level].priority, "%s", bol); -#else - printf("%d/%s\n", tags[level].priority, bol); -#endif - } - pos = buf; - colon = (char const *) 0; - continue; - } - if (c == ':' && !colon) - colon = pos; - if ((size_t) (pos - buf) < sizeof(buf) - 1) - *pos++ = c; - } - return 0; -} |