a16baafc97846f68e08b1d466eff67ed130b24ae
[fio.git] / log.c
1 #include <unistd.h>
2 #include <fcntl.h>
3 #include <string.h>
4 #include <stdarg.h>
5 #include <syslog.h>
6
7 #include "fio.h"
8
9 int log_valist(const char *str, va_list args)
10 {
11         char buffer[1024];
12         size_t len;
13
14         len = vsnprintf(buffer, sizeof(buffer), str, args);
15
16         if (log_syslog)
17                 syslog(LOG_INFO, "%s", buffer);
18         else
19                 len = fwrite(buffer, len, 1, f_out);
20
21         return len;
22 }
23
24 int log_local(const char *format, ...)
25 {
26         char buffer[1024];
27         va_list args;
28         size_t len;
29
30         va_start(args, format);
31         len = vsnprintf(buffer, sizeof(buffer), format, args);
32         va_end(args);
33
34         if (log_syslog)
35                 syslog(LOG_INFO, "%s", buffer);
36         else
37                 len = fwrite(buffer, len, 1, f_out);
38
39         return len;
40 }
41
42 int log_info(const char *format, ...)
43 {
44         char buffer[1024];
45         va_list args;
46         size_t len;
47
48         va_start(args, format);
49         len = vsnprintf(buffer, sizeof(buffer), format, args);
50         va_end(args);
51
52         if (is_backend)
53                 return fio_server_text_output(buffer, len);
54         else
55                 return fwrite(buffer, len, 1, f_out);
56 }
57
58 int log_err(const char *format, ...)
59 {
60         char buffer[1024];
61         va_list args;
62         size_t len;
63
64         va_start(args, format);
65         len = vsnprintf(buffer, sizeof(buffer), format, args);
66         va_end(args);
67
68         if (is_backend)
69                 return fio_server_text_output(buffer, len);
70         else {
71                 if (f_err != stderr) {
72                         int fio_unused ret;
73
74                         ret = fwrite(buffer, len, 1, stderr);
75                 }
76
77                 return fwrite(buffer, len, 1, f_err);
78         }
79 }