/*
- * log.c
- * exFAT file system implementation library.
- *
- * Created by Andrew Nayenko on 02.09.09.
- * This software is distributed under the GNU General Public License
- * version 3 or any later.
- */
+ log.c (02.09.09)
+ exFAT file system implementation library.
+
+ Free exFAT implementation.
+ Copyright (C) 2010-2015 Andrew Nayenko
+
+ 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 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 "exfat.h"
#include <stdarg.h>
+#include <syslog.h>
+#include <unistd.h>
int exfat_errors;
*/
void exfat_bug(const char* format, ...)
{
- va_list ap;
+ va_list ap, aq;
+
+ va_start(ap, format);
+ va_copy(aq, ap);
fflush(stdout);
fputs("BUG: ", stderr);
- va_start(ap, format);
vfprintf(stderr, format, ap);
va_end(ap);
fputs(".\n", stderr);
- exit(1);
+
+ if (!isatty(STDERR_FILENO))
+ vsyslog(LOG_CRIT, format, aq);
+ va_end(aq);
+
+ abort();
}
/*
*/
void exfat_error(const char* format, ...)
{
- va_list ap;
+ va_list ap, aq;
exfat_errors++;
+ va_start(ap, format);
+ va_copy(aq, ap);
+
fflush(stdout);
fputs("ERROR: ", stderr);
- va_start(ap, format);
vfprintf(stderr, format, ap);
va_end(ap);
fputs(".\n", stderr);
+
+ if (!isatty(STDERR_FILENO))
+ vsyslog(LOG_ERR, format, aq);
+ va_end(aq);
}
/*
*/
void exfat_warn(const char* format, ...)
{
- va_list ap;
+ va_list ap, aq;
+
+ va_start(ap, format);
+ va_copy(aq, ap);
fflush(stdout);
fputs("WARN: ", stderr);
- va_start(ap, format);
vfprintf(stderr, format, ap);
va_end(ap);
fputs(".\n", stderr);
+
+ if (!isatty(STDERR_FILENO))
+ vsyslog(LOG_WARNING, format, aq);
+ va_end(aq);
}
/*