blob: a16baafc97846f68e08b1d466eff67ed130b24ae [file] [log] [blame]
Jens Axboeac9b9102011-10-01 15:01:08 -04001#include <unistd.h>
2#include <fcntl.h>
3#include <string.h>
4#include <stdarg.h>
Jens Axboee46d8092011-10-03 09:11:02 +02005#include <syslog.h>
Jens Axboeac9b9102011-10-01 15:01:08 -04006
Jens Axboe3c39a372006-06-06 20:56:12 +02007#include "fio.h"
8
Jens Axboee46d8092011-10-03 09:11:02 +02009int log_valist(const char *str, va_list args)
10{
Jens Axboe734f38c2011-10-04 23:46:22 +020011 char buffer[1024];
12 size_t len;
Jens Axboee46d8092011-10-03 09:11:02 +020013
Jens Axboe734f38c2011-10-04 23:46:22 +020014 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;
Jens Axboee46d8092011-10-03 09:11:02 +020022}
23
Jens Axboeac9b9102011-10-01 15:01:08 -040024int log_local(const char *format, ...)
Jens Axboe691c8fb2008-03-07 14:26:26 +010025{
Jens Axboeac9b9102011-10-01 15:01:08 -040026 char buffer[1024];
27 va_list args;
28 size_t len;
29
30 va_start(args, format);
Jens Axboe734f38c2011-10-04 23:46:22 +020031 len = vsnprintf(buffer, sizeof(buffer), format, args);
32 va_end(args);
Jens Axboeac9b9102011-10-01 15:01:08 -040033
Jens Axboe734f38c2011-10-04 23:46:22 +020034 if (log_syslog)
35 syslog(LOG_INFO, "%s", buffer);
36 else
37 len = fwrite(buffer, len, 1, f_out);
38
39 return len;
Jens Axboe691c8fb2008-03-07 14:26:26 +010040}
41
Jens Axboeac9b9102011-10-01 15:01:08 -040042int log_info(const char *format, ...)
Jens Axboe3c39a372006-06-06 20:56:12 +020043{
Jens Axboeac9b9102011-10-01 15:01:08 -040044 char buffer[1024];
45 va_list args;
46 size_t len;
Jens Axboef29b25a2007-07-23 08:56:43 +020047
Jens Axboeac9b9102011-10-01 15:01:08 -040048 va_start(args, format);
49 len = vsnprintf(buffer, sizeof(buffer), format, args);
50 va_end(args);
Jens Axboef29b25a2007-07-23 08:56:43 +020051
Jens Axboeac9b9102011-10-01 15:01:08 -040052 if (is_backend)
53 return fio_server_text_output(buffer, len);
Jens Axboef29b25a2007-07-23 08:56:43 +020054 else
Jens Axboeac9b9102011-10-01 15:01:08 -040055 return fwrite(buffer, len, 1, f_out);
Jens Axboef29b25a2007-07-23 08:56:43 +020056}
57
Jens Axboeac9b9102011-10-01 15:01:08 -040058int log_err(const char *format, ...)
Jens Axboef29b25a2007-07-23 08:56:43 +020059{
Jens Axboeac9b9102011-10-01 15:01:08 -040060 char buffer[1024];
61 va_list args;
62 size_t len;
Jens Axboef29b25a2007-07-23 08:56:43 +020063
Jens Axboeac9b9102011-10-01 15:01:08 -040064 va_start(args, format);
65 len = vsnprintf(buffer, sizeof(buffer), format, args);
66 va_end(args);
Jens Axboef29b25a2007-07-23 08:56:43 +020067
Jens Axboeac9b9102011-10-01 15:01:08 -040068 if (is_backend)
69 return fio_server_text_output(buffer, len);
Jens Axboef29b25a2007-07-23 08:56:43 +020070 else {
Jens Axboe1f39e552011-10-05 11:50:47 +020071 if (f_err != stderr) {
72 int fio_unused ret;
73
74 ret = fwrite(buffer, len, 1, stderr);
75 }
Jens Axboeac9b9102011-10-01 15:01:08 -040076
77 return fwrite(buffer, len, 1, f_err);
Jens Axboef29b25a2007-07-23 08:56:43 +020078 }
Jens Axboee3cedca2008-11-19 19:57:52 +010079}