diff options
Diffstat (limited to 'usbmuxd/log.c')
| -rw-r--r-- | usbmuxd/log.c | 58 | 
1 files changed, 58 insertions, 0 deletions
| diff --git a/usbmuxd/log.c b/usbmuxd/log.c new file mode 100644 index 0000000..a70120b --- /dev/null +++ b/usbmuxd/log.c @@ -0,0 +1,58 @@ +/* +	usbmuxd - iPhone/iPod Touch USB multiplex server daemon + +Copyright (C) 2009	Hector Martin "marcan" <hector@marcansoft.com> + +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 or version 3. + +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 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + +*/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <stdarg.h> +#include <time.h> +#include <sys/time.h> + +#include "log.h" + +int log_level = LL_INFO; + +void usbmuxd_log(enum loglevel level, const char *fmt, ...) +{ +	va_list ap; +	char *fs; +	struct timeval ts; +	struct tm *tp; +	 +	gettimeofday(&ts, NULL); +	tp = localtime(&ts.tv_sec); +	 +	if(level > log_level) +		return; +	 +	fs = malloc(20 + strlen(fmt)); +	strftime(fs, 10, "[%H:%M:%S", tp); +	sprintf(fs+9, ".%03d][%d] %s\n", (int)(ts.tv_usec / 1000), level, fmt); +	 +	va_start(ap, fmt); +	vfprintf(stderr, fs, ap); +	va_end(ap); +	 +	free(fs); +} | 
