Duplicate log functions from ndctl/monitor to use for stdout and file
logging.

Signed-off-by: Dave Jiang <dave.ji...@gmail.com>
---
 cxl/monitor.c |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/cxl/monitor.c b/cxl/monitor.c
index 759246926e05..c241ed31584f 100644
--- a/cxl/monitor.c
+++ b/cxl/monitor.c
@@ -39,6 +39,31 @@ static struct monitor {
        bool human;
 } monitor;
 
+static void log_standard(struct log_ctx *ctx, int priority, const char *file,
+               int line, const char *fn, const char *format, va_list args)
+{
+       if (priority == 6)
+               vfprintf(stdout, format, args);
+       else
+               vfprintf(stderr, format, args);
+}
+
+static void log_file(struct log_ctx *ctx, int priority, const char *file,
+               int line, const char *fn, const char *format, va_list args)
+{
+       FILE *f = monitor.log_file;
+
+       if (priority != LOG_NOTICE) {
+               struct timespec ts;
+
+               clock_gettime(CLOCK_REALTIME, &ts);
+               fprintf(f, "[%10ld.%09ld] [%d] ", ts.tv_sec, ts.tv_nsec, 
getpid());
+       }
+
+       vfprintf(f, format, args);
+       fflush(f);
+}
+
 static int monitor_event(struct cxl_ctx *ctx)
 {
        int fd, epollfd, rc = 0, timeout = -1;



Reply via email to