]> git.sven.stormbind.net Git - sven/exfat-utils.git/blob - libexfat/log.c
New upstream release
[sven/exfat-utils.git] / libexfat / log.c
1 /*
2         log.c (02.09.09)
3         exFAT file system implementation library.
4
5         Copyright (C) 2010-2013  Andrew Nayenko
6
7         This program is free software: you can redistribute it and/or modify
8         it under the terms of the GNU General Public License as published by
9         the Free Software Foundation, either version 3 of the License, or
10         (at your option) any later version.
11
12         This program is distributed in the hope that it will be useful,
13         but WITHOUT ANY WARRANTY; without even the implied warranty of
14         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15         GNU General Public License for more details.
16
17         You should have received a copy of the GNU General Public License
18         along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #include "exfat.h"
22 #include <stdarg.h>
23 #include <syslog.h>
24 #include <unistd.h>
25
26 int exfat_errors;
27
28 /*
29  * This message means an internal bug in exFAT implementation.
30  */
31 void exfat_bug(const char* format, ...)
32 {
33         va_list ap, aq;
34
35         va_start(ap, format);
36         va_copy(aq, ap);
37
38         fflush(stdout);
39         fputs("BUG: ", stderr);
40         vfprintf(stderr, format, ap);
41         va_end(ap);
42         fputs(".\n", stderr);
43
44         if (!isatty(STDERR_FILENO))
45                 vsyslog(LOG_CRIT, format, aq);
46         va_end(aq);
47
48         abort();
49 }
50
51 /*
52  * This message means an error in exFAT file system.
53  */
54 void exfat_error(const char* format, ...)
55 {
56         va_list ap, aq;
57
58         exfat_errors++;
59         va_start(ap, format);
60         va_copy(aq, ap);
61
62         fflush(stdout);
63         fputs("ERROR: ", stderr);
64         vfprintf(stderr, format, ap);
65         va_end(ap);
66         fputs(".\n", stderr);
67
68         if (!isatty(STDERR_FILENO))
69                 vsyslog(LOG_ERR, format, aq);
70         va_end(aq);
71 }
72
73 /*
74  * This message means that there is something unexpected in exFAT file system
75  * that can be a potential problem.
76  */
77 void exfat_warn(const char* format, ...)
78 {
79         va_list ap, aq;
80
81         va_start(ap, format);
82         va_copy(aq, ap);
83
84         fflush(stdout);
85         fputs("WARN: ", stderr);
86         vfprintf(stderr, format, ap);
87         va_end(ap);
88         fputs(".\n", stderr);
89
90         if (!isatty(STDERR_FILENO))
91                 vsyslog(LOG_WARNING, format, aq);
92         va_end(aq);
93 }
94
95 /*
96  * Just debug message. Disabled by default.
97  */
98 void exfat_debug(const char* format, ...)
99 {
100         va_list ap;
101
102         fflush(stdout);
103         fputs("DEBUG: ", stderr);
104         va_start(ap, format);
105         vfprintf(stderr, format, ap);
106         va_end(ap);
107         fputs(".\n", stderr);
108 }