blob: 1dacac41f118fdd4678d3c7e0911518f0bab4c88 [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{
11 if (log_syslog) {
12 vsyslog(LOG_INFO, str, args);
13 return 0;
14 } else {
15 char buffer[1024];
16 size_t len;
17
18 len = vsnprintf(buffer, sizeof(buffer), str, args);
19 return fwrite(buffer, len, 1, f_out);
20 }
21}
22
Jens Axboeac9b9102011-10-01 15:01:08 -040023int log_local(const char *format, ...)
Jens Axboe691c8fb2008-03-07 14:26:26 +010024{
Jens Axboeac9b9102011-10-01 15:01:08 -040025 char buffer[1024];
26 va_list args;
27 size_t len;
28
29 va_start(args, format);
Jens Axboeac9b9102011-10-01 15:01:08 -040030
Jens Axboee46d8092011-10-03 09:11:02 +020031 if (log_syslog) {
32 vsyslog(LOG_INFO, format, args);
33 va_end(args);
34 return 0;
35 } else {
36 len = vsnprintf(buffer, sizeof(buffer), format, args);
37 va_end(args);
38 return fwrite(buffer, len, 1, f_out);
39 }
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 Axboeac9b9102011-10-01 15:01:08 -040071 if (f_err != stderr)
72 fwrite(buffer, len, 1, stderr);
73
74 return fwrite(buffer, len, 1, f_err);
Jens Axboef29b25a2007-07-23 08:56:43 +020075 }
Jens Axboee3cedca2008-11-19 19:57:52 +010076}