/*
- * $Id: debug.cc,v 1.96 2003/08/31 21:20:08 robertc Exp $
+ * $Id: debug.cc,v 1.97 2005/04/06 18:44:25 serassio Exp $
*
* DEBUG: section 0 Debug Routines
* AUTHOR: Harvest Derived
static const char *debugLogTime(void);
static void ctx_print(void);
#if HAVE_SYSLOG
+#ifdef LOG_LOCAL4
+static int syslog_facility = 0;
+#endif
static void _db_print_syslog(const char *format, va_list args);
#endif
static void _db_print_stderr(const char *format, va_list args);
#endif
}
+#if HAVE_SYSLOG
+#ifdef LOG_LOCAL4
+
+static struct syslog_facility_name {
+ const char *name;
+ int facility;
+}
+
+syslog_facility_names[] = {
+
+#ifdef LOG_AUTH
+ {
+ "auth", LOG_AUTH
+ },
+#endif
+#ifdef LOG_AUTHPRIV
+ {
+ "authpriv", LOG_AUTHPRIV
+ },
+#endif
+#ifdef LOG_CRON
+ {
+ "cron", LOG_CRON
+ },
+#endif
+#ifdef LOG_DAEMON
+ {
+ "daemon", LOG_DAEMON
+ },
+#endif
+#ifdef LOG_FTP
+ {
+ "ftp", LOG_FTP
+ },
+#endif
+#ifdef LOG_KERN
+ {
+ "kern", LOG_KERN
+ },
+#endif
+#ifdef LOG_LPR
+ {
+ "lpr", LOG_LPR
+ },
+#endif
+#ifdef LOG_MAIL
+ {
+ "mail", LOG_MAIL
+ },
+#endif
+#ifdef LOG_NEWS
+ {
+ "news", LOG_NEWS
+ },
+#endif
+#ifdef LOG_SYSLOG
+ {
+ "syslog", LOG_SYSLOG
+ },
+#endif
+#ifdef LOG_USER
+ {
+ "user", LOG_USER
+ },
+#endif
+#ifdef LOG_UUCP
+ {
+ "uucp", LOG_UUCP
+ },
+#endif
+#ifdef LOG_LOCAL0
+ {
+ "local0", LOG_LOCAL0
+ },
+#endif
+#ifdef LOG_LOCAL1
+ {
+ "local1", LOG_LOCAL1
+ },
+#endif
+#ifdef LOG_LOCAL2
+ {
+ "local2", LOG_LOCAL2
+ },
+#endif
+#ifdef LOG_LOCAL3
+ {
+ "local3", LOG_LOCAL3
+ },
+#endif
+#ifdef LOG_LOCAL4
+ {
+ "local4", LOG_LOCAL4
+ },
+#endif
+#ifdef LOG_LOCAL5
+ {
+ "local5", LOG_LOCAL5
+ },
+#endif
+#ifdef LOG_LOCAL6
+ {
+ "local6", LOG_LOCAL6
+ },
+#endif
+#ifdef LOG_LOCAL7
+ {
+ "local7", LOG_LOCAL7
+ },
+#endif
+ {
+ NULL, 0
+ }
+ };
+
+#endif
+
+void
+_db_set_syslog(const char *facility) {
+ opt_syslog_enable = 1;
+#ifdef LOG_LOCAL4
+#ifdef LOG_DAEMON
+
+ syslog_facility = LOG_DAEMON;
+#else
+
+ syslog_facility = LOG_LOCAL4;
+#endif
+
+ if (facility) {
+
+ struct syslog_facility_name *n;
+
+ for (n = syslog_facility_names; n->name; n++) {
+ if (strcmp(n->name, facility) == 0) {
+ syslog_facility = n->facility;
+ return;
+ }
+ }
+
+ fprintf(stderr, "unknown syslog facility '%s'\n", facility);
+ exit(1);
+ }
+
+#else
+ if (facility)
+ fprintf(stderr, "syslog facility type not supported on your system\n");
+
+#endif
+}
+
+#endif
+
void
Debug::parseOptions(char const *options) {
int i;
#if HAVE_SYSLOG && defined(LOG_LOCAL4)
if (opt_syslog_enable)
- openlog(appname, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4);
+ openlog(appname, LOG_PID | LOG_NDELAY | LOG_CONS, syslog_facility);
#endif /* HAVE_SYSLOG */
/*
- * $Id: main.cc,v 1.406 2005/04/03 17:11:21 serassio Exp $
+ * $Id: main.cc,v 1.407 2005/04/06 18:44:25 serassio Exp $
*
* DEBUG: section 1 Startup and Main Loop
* AUTHOR: Harvest Derived
static int opt_send_signal = -1;
static int opt_parse_cfg_only = 0;
+static char *opt_syslog_facility = NULL;
static int icpPortNumOverride = 1; /* Want to detect "-u 0" */
static int configured_once = 0;
#if MALLOC_DBG
{
fprintf(stderr,
#if USE_WIN32_SERVICE
- "Usage: %s [-cdhirsvzCDFNRVYX] [-f config-file] [-[au] port] [-k signal] [-n name] [-O CommandLine]\n"
+ "Usage: %s [-cdhirvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal] [-n name] [-O CommandLine]\n"
#else
- "Usage: %s [-cdhsvzCDFNRVYX] [-f config-file] [-[au] port] [-k signal]\n"
+ "Usage: %s [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]\n"
#endif
" -a port Specify HTTP port number (default: %d).\n"
" -d level Write debugging to stderr also.\n"
" default is: " _WIN_SQUID_DEFAULT_SERVICE_NAME ".\n"
" -r Removes a Windows Service (see -n option).\n"
#endif
- " -s Enable logging to syslog.\n"
+ " -s | -l facility\n"
+ " Enable logging to syslog.\n"
" -u port Specify ICP port number (default: %d), disable with 0.\n"
" -v Print version.\n"
" -z Create swap directories\n"
#if USE_WIN32_SERVICE
- while ((c = getopt(argc, argv, "CDFNO:RSVYXa:d:f:hik:m::n:rsu:vz?")) != -1)
+ while ((c = getopt(argc, argv, "CDFNO:RSVYXa:d:f:hik:m::n:rsl:u:vz?")) != -1)
#else
- while ((c = getopt(argc, argv, "CDFNRSVYXa:d:f:hk:m::su:vz?")) != -1)
+ while ((c = getopt(argc, argv, "CDFNRSVYXa:d:f:hk:m::sl:u:vz?")) != -1)
#endif
{
#endif
+ case 'l':
+ opt_syslog_facility = xstrdup(optarg);
+
case 's':
#if HAVE_SYSLOG
- opt_syslog_enable = 1;
+ _db_set_syslog(opt_syslog_facility);
break;
/*
- * $Id: protos.h,v 1.503 2005/01/03 16:08:26 robertc Exp $
+ * $Id: protos.h,v 1.504 2005/04/06 18:44:25 serassio Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
SQUIDCEXTERN Ctx ctx_enter(const char *descr);
SQUIDCEXTERN void ctx_exit(Ctx ctx);
+SQUIDCEXTERN void _db_set_syslog(const char *facility);
SQUIDCEXTERN void _db_init(const char *logfile, const char *options);
SQUIDCEXTERN void _db_rotate_log(void);