-
Notifications
You must be signed in to change notification settings - Fork 0
/
logger.c
70 lines (55 loc) · 1.53 KB
/
logger.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright (c) 2020 Wind River Systems, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at:
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software distributed
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
// OR CONDITIONS OF ANY KIND, either express or implied.
#include "logger.h"
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int logger_verbose = 0;
int vlog(const char* format, ...) {
if(logger_verbose > 0) {
va_list arg;
int done;
va_start(arg, format);
done = vfprintf(stdout, format, arg);
va_end(arg);
return done;
}
return 0;
}
int flog(FILE* stream, const char* format, ...) {
va_list arg;
int done;
va_start(arg, format);
done = vfprintf(stream, format, arg);
va_end(arg);
return done;
}
int elog(const char* format, ...) {
va_list arg;
int done;
va_start(arg, format);
done = vfprintf(stderr, format, arg);
va_end(arg);
return done;
}
char* jsonEscape(const char* s) {
char* ret = malloc((strlen(s)*2)+1);
int j = 0;
for(int i = 0; i < strlen(s); i++) {
char c = s[i];
if(c == '"' || c == '\\' || ('\x00' <= c && c <= '\x1f' )) {
ret[j++] = '\\';
}
ret[j++] = c;
}
ret[j] = '\0';
return ret;
}