Mercurial > pt1.oyama
diff src/trace.c @ 125:e413158cae13
Add ushare project files.
author | naoyan@johnstown.minaminoshima.org |
---|---|
date | Sun, 03 Oct 2010 11:35:19 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/trace.c Sun Oct 03 11:35:19 2010 +0900 @@ -0,0 +1,64 @@ +/* + * trace.c : GeeXboX uShare log facility. + * Originally developped for the GeeXboX project. + * Copyright (C) 2005-2007 Alexis Saettler <asbin@asbin.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <stdio.h> +#include <stdarg.h> +#include <syslog.h> +#include <stdbool.h> + +#include "config.h" +#include "trace.h" +#include "ushare.h" + +extern struct ushare_t *ut; + +void +print_log (log_level level, const char *format, ...) +{ + va_list va; + bool is_daemon = ut ? ut->daemon : false; + bool is_verbose = ut ? ut->verbose : false; + + if (!format) + return; + + if (!is_verbose && level >= ULOG_VERBOSE) + return; + + va_start (va, format); + if (is_daemon) + { + int flags = LOG_DAEMON; + flags |= level == ULOG_ERROR ? LOG_ERR : LOG_NOTICE; + vsyslog (flags, format, va); + } + else + { + FILE *output = level == ULOG_ERROR ? stderr : stdout; + vfprintf (output, format, va); + } + va_end (va); +} + +inline void +start_log (void) +{ + openlog (PACKAGE_NAME, LOG_PID, LOG_DAEMON); +}