#include <syslog.h>
#include <unistd.h>
#include <time.h>
+#include <string.h>
#define LOG_FUNCNAME 1
#include "log.h"
#include "cleanup.h"
int nvme_log_level = DEFAULT_LOGLEVEL;
bool nvme_log_timestamp;
bool nvme_log_pid;
+char *nvme_log_message = NULL;
void __attribute__((format(printf, 3, 4)))
__nvme_msg(int lvl, const char *func, const char *format, ...)
char *message __cleanup__(cleanup_charp) = NULL;
int idx;
- if (lvl > nvme_log_level)
- return;
-
if (nvme_log_timestamp) {
struct timespec now;
message = NULL;
va_end(ap);
- fprintf(stderr, "%s%s", header ? header : "<error>",
- message ? message : "<error>");
+ if (nvme_log_message)
+ free(nvme_log_message);
+ nvme_log_message = strdup(message);
+
+ if (lvl <= nvme_log_level)
+ fprintf(stderr, "%s%s", header ? header : "<error>",
+ message ? message : "<error>");
}
extern int nvme_log_level;
extern bool nvme_log_timestamp;
extern bool nvme_log_pid;
+extern char *nvme_log_message;
void __attribute__((format(printf, 3, 4)))
__nvme_msg(int lvl, const char *func, const char *format, ...);