blob: 1024913703adecb4fb6cb73d2f58eb2b15943873 [file] [log] [blame]
/* SPDX-License-Identifier: Apache-2.0 */
#ifndef _LIBMCTP_LOG_H
#define _LIBMCTP_LOG_H
/* libmctp-internal logging */
#ifndef pr_fmt
#define pr_fmt
#endif
#if defined(MCTP_LOG_STDERR)
#include <stdio.h>
#define MCTP_LOG_ERR 0
#define MCTP_LOG_WARNING 0
#define MCTP_LOG_NOTICE 0
#define MCTP_LOG_INFO 0
#define MCTP_LOG_DEBUG 0
#define mctp_prlog(x, fmt, ...) fprintf(stderr, fmt "\n", ##__VA_ARGS__)
#elif defined(MCTP_LOG_SYSLOG)
#include <syslog.h>
#define MCTP_LOG_ERR LOG_ERR
#define MCTP_LOG_WARNING LOG_WARNING
#define MCTP_LOG_NOTICE LOG_NOTICE
#define MCTP_LOG_INFO LOG_INFO
#define MCTP_LOG_DEBUG LOG_DEBUG
#define mctp_prlog(x, fmt, ...) syslog(x, fmt, ##__VA_ARGS__)
#elif defined(MCTP_LOG_CUSTOM)
extern void mctp_prlog(int level, const char *fmt, ...)
__attribute__((format(printf, 2, 3)));
#else
#error No log implementation found
#endif
#define mctp_prerr(fmt, ...) mctp_prlog(MCTP_LOG_ERR, fmt, ##__VA_ARGS__)
#define mctp_prwarn(fmt, ...) mctp_prlog(MCTP_LOG_WARNING, fmt, ##__VA_ARGS__)
#define mctp_prinfo(fmt, ...) mctp_prlog(MCTP_LOG_INFO, fmt, ##__VA_ARGS__)
#define mctp_prdebug(fmt, ...) mctp_prlog(MCTP_LOG_DEBUG, fmt, ##__VA_ARGS__)
#endif /* _LIBMCTP_LOG_H */