#ifdef __MWERKS__
# define _CPP_LOGGING
#endif
#include <Security/logging.h>
#include <Security/globalizer.h>
#include <cstdarg>
namespace Security
{
namespace Syslog
{
void open(const char *ident, int facility, int options )
{
::openlog(ident, options, facility);
}
static void output(int priority, const char *format, va_list args)
{
::vsyslog(priority, format, args);
}
void syslog(int priority, const char *format, ...)
{ va_list args; va_start(args, format); output(priority, format, args); va_end(args); }
void emergency(const char *format, ...)
{ va_list args; va_start(args, format); output(LOG_EMERG, format, args); va_end(args); }
void alert(const char *format, ...)
{ va_list args; va_start(args, format); output(LOG_ALERT, format, args); va_end(args); }
void critical(const char *format, ...)
{ va_list args; va_start(args, format); output(LOG_CRIT, format, args); va_end(args); }
void error(const char *format, ...)
{ va_list args; va_start(args, format); output(LOG_ERR, format, args); va_end(args); }
void warning(const char *format, ...)
{ va_list args; va_start(args, format); output(LOG_WARNING, format, args); va_end(args); }
void notice(const char *format, ...)
{ va_list args; va_start(args, format); output(LOG_NOTICE, format, args); va_end(args); }
void info(const char *format, ...)
{ va_list args; va_start(args, format); output(LOG_INFO, format, args); va_end(args); }
void debug(const char *format, ...)
{ va_list args; va_start(args, format); output(LOG_DEBUG, format, args); va_end(args); }
int mask()
{
int mask;
::setlogmask(mask = ::setlogmask(0));
return mask;
}
void upto(int priority)
{
::setlogmask(LOG_UPTO(priority));
}
void enable(int priority)
{
::setlogmask(::setlogmask(0) | LOG_MASK(priority));
}
void disable(int priority)
{
::setlogmask(::setlogmask(0) & ~LOG_MASK(priority));
}
}
}