OSDN Git Service

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