46#define LOG_CLIENT_IMPL(client, level, fmt, ...) \
48 if ((client)->crypto_initialized) { \
49 const struct crypto_context_t *_ctx = crypto_handshake_get_context(&(client)->crypto_handshake_ctx); \
50 log_net_message((client)->socket, _ctx, level, REMOTE_LOG_DIRECTION_SERVER_TO_CLIENT, NULL, 0, NULL, fmt, \
55#define LOG_CLIENT_IMPL(client, level, fmt, ...) \
57 if ((client)->crypto_initialized) { \
58 const struct crypto_context_t *_ctx = crypto_handshake_get_context(&(client)->crypto_handshake_ctx); \
59 log_net_message((client)->socket, _ctx, level, REMOTE_LOG_DIRECTION_SERVER_TO_CLIENT, __FILE__, __LINE__, \
60 __func__, fmt, ##__VA_ARGS__); \
66#define log_debug_client(client, fmt, ...) LOG_CLIENT_IMPL(client, LOG_DEBUG, fmt, ##__VA_ARGS__)
69#define log_info_client(client, fmt, ...) LOG_CLIENT_IMPL(client, LOG_INFO, fmt, ##__VA_ARGS__)
72#define log_warn_client(client, fmt, ...) LOG_CLIENT_IMPL(client, LOG_WARN, fmt, ##__VA_ARGS__)
75#define log_error_client(client, fmt, ...) LOG_CLIENT_IMPL(client, LOG_ERROR, fmt, ##__VA_ARGS__)
78#define log_fatal_client(client, fmt, ...) LOG_CLIENT_IMPL(client, LOG_FATAL, fmt, ##__VA_ARGS__)
82#define LOG_SERVER_IMPL(sockfd, crypto_ctx, level, fmt, ...) \
83 log_net_message(sockfd, (const struct crypto_context_t *)(crypto_ctx), level, REMOTE_LOG_DIRECTION_CLIENT_TO_SERVER, \
84 NULL, 0, NULL, fmt, ##__VA_ARGS__)
86#define LOG_SERVER_IMPL(sockfd, crypto_ctx, level, fmt, ...) \
87 log_net_message(sockfd, (const struct crypto_context_t *)(crypto_ctx), level, REMOTE_LOG_DIRECTION_CLIENT_TO_SERVER, \
88 __FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__)
92#define log_debug_server(sockfd, crypto_ctx, fmt, ...) \
93 LOG_SERVER_IMPL(sockfd, crypto_ctx, LOG_DEBUG, fmt, ##__VA_ARGS__)
96#define log_info_server(sockfd, crypto_ctx, fmt, ...) LOG_SERVER_IMPL(sockfd, crypto_ctx, LOG_INFO, fmt, ##__VA_ARGS__)
99#define log_warn_server(sockfd, crypto_ctx, fmt, ...) LOG_SERVER_IMPL(sockfd, crypto_ctx, LOG_WARN, fmt, ##__VA_ARGS__)
102#define log_error_server(sockfd, crypto_ctx, fmt, ...) \
103 LOG_SERVER_IMPL(sockfd, crypto_ctx, LOG_ERROR, fmt, ##__VA_ARGS__)
106#define log_fatal_server(sockfd, crypto_ctx, fmt, ...) \
107 LOG_SERVER_IMPL(sockfd, crypto_ctx, LOG_FATAL, fmt, ##__VA_ARGS__)
remote_log_direction
Remote log packet direction enumeration.
enum remote_log_direction remote_log_direction_t
Remote log packet direction enumeration.
@ REMOTE_LOG_DIRECTION_SERVER_TO_CLIENT
@ REMOTE_LOG_DIRECTION_UNKNOWN
@ REMOTE_LOG_DIRECTION_CLIENT_TO_SERVER
📝 Logging API with multiple log levels and terminal output control