Skip to content

Commit 3b99a91

Browse files
vlubartTomas Winkler
authored andcommitted
igsc: lib: add timestamps to logs
Add timestamps to logs. Retrieve the time using locatime() standard library function. Signed-off-by: Vitaly Lubart <vitaly.lubart@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
1 parent 23de4e6 commit 3b99a91

File tree

4 files changed

+47
-13
lines changed

4 files changed

+47
-13
lines changed

include/gcc/config.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
1919
#define mockable
2020
#endif
2121

22+
#include <time.h>
23+
static inline void gsc_localtime(const time_t* timer, struct tm* buf )
24+
{
25+
localtime_r(timer, buf);
26+
}
27+
2228
#endif /* defined(__clang__) || defined(__GNUC__) */
2329

2430
#endif /* !__IGSC_GCC_CONFIG_H__ */

include/msvc/config.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@
1919
#define mockable_static static
2020
#define mockable
2121

22-
#endif /* _MSC_VER */
22+
#include <time.h>
23+
static inline void gsc_localtime(const time_t* timer, struct tm* buf )
24+
{
25+
localtime_s(buf, timer);
26+
}
2327

28+
#endif /* _MSC_VER */
2429

2530
#endif /*__IGSC_MSVC_CONFIG_H__ */

lib/igsc_log.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright (C) 2023 Intel Corporation
44
*/
55

6+
#include <time.h>
67
#include "msvc/config.h"
78
#include "gcc/config.h"
89
#include "igsc_lib.h"
@@ -39,3 +40,19 @@ igsc_log_func_t igsc_get_log_callback_func(void)
3940
{
4041
return igsc_log_func;
4142
}
43+
44+
const char *gsc_time(char *buffer, size_t buff_len)
45+
{
46+
time_t curtime;
47+
struct tm timeinfo = {0};
48+
size_t ret;
49+
50+
if (!buffer)
51+
return NULL;
52+
curtime = time(NULL);
53+
gsc_localtime(&curtime, &timeinfo);
54+
ret = strftime(buffer, buff_len, "%c", &timeinfo);
55+
buffer[ret] = 0;
56+
return buffer;
57+
}
58+

lib/igsc_log.h

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,35 +49,41 @@
4949
#define trace_print(fmt, ...) fprintf(stdout, fmt, ##__VA_ARGS__)
5050
#endif /* SYSLOG */
5151

52+
#define MAX_TIME_STRING_LEN 128
53+
const char *gsc_time(char *buffer, size_t buff_len);
5254
#define gsc_debug(_fmt_, ...) \
5355
if (igsc_get_log_level() >= IGSC_LOG_LEVEL_DEBUG) { \
56+
char __time_buf[MAX_TIME_STRING_LEN]; \
5457
if (NULL == igsc_get_log_callback_func()) { \
55-
debug_print(PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
56-
__FILE__, __func__, __LINE__, ##__VA_ARGS__); \
58+
debug_print("%s: " PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
59+
gsc_time(__time_buf, sizeof(__time_buf)), __FILE__, __func__, __LINE__, ##__VA_ARGS__); \
5760
} else { \
58-
igsc_log_func_t igsc_log_func = igsc_get_log_callback_func(); igsc_log_func(IGSC_LOG_LEVEL_DEBUG, PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
59-
__FILE__, __func__, __LINE__, ##__VA_ARGS__); \
61+
igsc_log_func_t igsc_log_func = igsc_get_log_callback_func(); igsc_log_func(IGSC_LOG_LEVEL_DEBUG, "%s: " PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
62+
gsc_time(__time_buf, sizeof(__time_buf)), __FILE__, __func__, __LINE__, ##__VA_ARGS__); \
6063
} \
6164
}
6265

6366
#define gsc_trace(_fmt_, ...) \
6467
if (igsc_get_log_level() >= IGSC_LOG_LEVEL_TRACE) { \
68+
char __time_buf[MAX_TIME_STRING_LEN]; \
6569
if (NULL == igsc_get_log_callback_func()) { \
66-
trace_print(PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
67-
__FILE__, __func__, __LINE__, ##__VA_ARGS__) \
70+
trace_print("%s: " PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
71+
gsc_time(__time_buf, sizeof(__time_buf)), __FILE__, __func__, __LINE__, ##__VA_ARGS__) \
6872
} else { \
69-
igsc_log_func_t igsc_log_func = igsc_get_log_callback_func(); igsc_log_func(IGSC_LOG_LEVEL_TRACE, PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
70-
__FILE__, __func__, __LINE__, ##__VA_ARGS__); \
73+
igsc_log_func_t igsc_log_func = igsc_get_log_callback_func(); igsc_log_func(IGSC_LOG_LEVEL_TRACE, "%s: " PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
74+
gsc_time(__time_buf, sizeof(__time_buf)), __FILE__, __func__, __LINE__, ##__VA_ARGS__); \
7175
} \
7276
}
7377

7478
#define gsc_error(_fmt_, ...) \
7579
if (NULL == igsc_get_log_callback_func()) { \
76-
error_print(PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
77-
__FILE__, __func__, __LINE__, ##__VA_ARGS__); \
80+
char __time_buf[MAX_TIME_STRING_LEN]; \
81+
error_print("%s: " PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
82+
gsc_time(__time_buf, sizeof(__time_buf)), __FILE__, __func__, __LINE__, ##__VA_ARGS__); \
7883
} else { \
79-
igsc_log_func_t igsc_log_func = igsc_get_log_callback_func(); igsc_log_func(IGSC_LOG_LEVEL_ERROR, PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
80-
__FILE__, __func__, __LINE__, ##__VA_ARGS__); \
84+
char __time_buf[MAX_TIME_STRING_LEN]; \
85+
igsc_log_func_t igsc_log_func = igsc_get_log_callback_func(); igsc_log_func(IGSC_LOG_LEVEL_ERROR, "%s: " PACKAGE_LOG_NAME ": (%s:%s():%d) " _fmt_, \
86+
gsc_time(__time_buf, sizeof(__time_buf)), __FILE__, __func__, __LINE__, ##__VA_ARGS__); \
8187
}
8288

8389
#endif /* __IGSC_UTILS_H__ */

0 commit comments

Comments
 (0)