diff options
author | seanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-06-25 23:54:03 +0000 |
---|---|---|
committer | seanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-06-25 23:54:03 +0000 |
commit | a83bcff2d6c3b1c78e0227b804ed3412a755a3e1 (patch) | |
tree | 0e85e32dc0a7225bc4fdc6b8eef2c44f4ffdfde0 /main/syslog.c | |
parent | 2810ae6ca7e93161901d8023f2b22cf3d211fee9 (diff) |
Move syslog utility functions into a separate file so they can be re-used.
This has the pleasant side effect of cleaning up the header inclusion process
in logger.c.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@203508 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/syslog.c')
-rw-r--r-- | main/syslog.c | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/main/syslog.c b/main/syslog.c new file mode 100644 index 000000000..466e21c03 --- /dev/null +++ b/main/syslog.c @@ -0,0 +1,120 @@ +/* + * Asterisk -- An open source telephony toolkit. + * + * Copyright (C) 2009, malleable, LLC. + * + * Sean Bright <sean@malleable.com> + * + * See http://www.asterisk.org for more information about + * the Asterisk project. Please do not directly contact + * any of the maintainers of this project for assistance; + * the project provides a web site, mailing lists and IRC + * channels for your use. + * + * This program is free software, distributed under the terms of + * the GNU General Public License Version 2. See the LICENSE file + * at the top of the source tree. + */ + +/*! \file + * + * \brief Asterisk Syslog Utility Functions + * \author Sean Bright <sean@malleable.com> + */ + +#include "asterisk.h" +#include "asterisk/utils.h" +#include "asterisk/syslog.h" + +ASTERISK_FILE_VERSION(__FILE__, "$Revision$") + +#include <syslog.h> + +int ast_syslog_facility(const char *facility) +{ + if (!strcasecmp(facility, "KERN")) { + return LOG_KERN; + } else if (!strcasecmp(facility, "USER")) { + return LOG_USER; + } else if (!strcasecmp(facility, "MAIL")) { + return LOG_MAIL; + } else if (!strcasecmp(facility, "DAEMON")) { + return LOG_DAEMON; + } else if (!strcasecmp(facility, "AUTH")) { + return LOG_AUTH; + } else if (!strcasecmp(facility, "AUTHPRIV")) { + return LOG_AUTHPRIV; + } else if (!strcasecmp(facility, "SYSLOG")) { + return LOG_SYSLOG; + } else if (!strcasecmp(facility, "SECURITY")) { + return LOG_AUTH; + } else if (!strcasecmp(facility, "FTP")) { + return LOG_FTP; + } else if (!strcasecmp(facility, "LPR")) { + return LOG_LPR; + } else if (!strcasecmp(facility, "NEWS")) { + return LOG_NEWS; + } else if (!strcasecmp(facility, "UUCP")) { + return LOG_UUCP; + } else if (!strcasecmp(facility, "CRON")) { + return LOG_CRON; + } else if (!strcasecmp(facility, "LOCAL0")) { + return LOG_LOCAL0; + } else if (!strcasecmp(facility, "LOCAL1")) { + return LOG_LOCAL1; + } else if (!strcasecmp(facility, "LOCAL2")) { + return LOG_LOCAL2; + } else if (!strcasecmp(facility, "LOCAL3")) { + return LOG_LOCAL3; + } else if (!strcasecmp(facility, "LOCAL4")) { + return LOG_LOCAL4; + } else if (!strcasecmp(facility, "LOCAL5")) { + return LOG_LOCAL5; + } else if (!strcasecmp(facility, "LOCAL6")) { + return LOG_LOCAL6; + } else if (!strcasecmp(facility, "LOCAL7")) { + return LOG_LOCAL7; + } + + return -1; +} + +int ast_syslog_priority(const char *priority) +{ + if (!strcasecmp(priority, "ALERT")) { + return LOG_ALERT; + } else if (!strcasecmp(priority, "CRIT")) { + return LOG_CRIT; + } else if (!strcasecmp(priority, "DEBUG")) { + return LOG_DEBUG; + } else if (!strcasecmp(priority, "EMERG")) { + return LOG_EMERG; + } else if (!strcasecmp(priority, "ERR")) { + return LOG_ERR; + } else if (!strcasecmp(priority, "INFO")) { + return LOG_INFO; + } else if (!strcasecmp(priority, "NOTICE")) { + return LOG_NOTICE; + } else if (!strcasecmp(priority, "WARNING")) { + return LOG_WARNING; + } + + return -1; +} + +static const int logger_level_to_syslog_map[] = { + [__LOG_DEBUG] = LOG_DEBUG, + [1] = LOG_INFO, /* Only kept for backwards compatibility */ + [__LOG_NOTICE] = LOG_NOTICE, + [__LOG_WARNING] = LOG_WARNING, + [__LOG_ERROR] = LOG_ERR, + [__LOG_VERBOSE] = LOG_DEBUG, + [__LOG_DTMF] = LOG_DEBUG, +}; + +int ast_syslog_priority_from_loglevel(int level) { + if (level < 0 || level >= ARRAY_LEN(logger_level_to_syslog_map)) { + return -1; + } + return logger_level_to_syslog_map[level]; +} |