6#include "WutLoggerUdp.h"
18 sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
24 int flags = fcntl(sock, F_GETFL, 0);
26 fcntl(sock, F_SETFL, flags | O_NONBLOCK);
29 memset(&serverAddr, 0,
sizeof(serverAddr));
30 serverAddr.sin_family = AF_INET;
31 serverAddr.sin_port = htons(config.
targetPort);
33 if (inet_pton(AF_INET, config.
targetIp, &serverAddr.sin_addr) != 1)
62 sendto(sock, line, len, 0, (
struct sockaddr *)&serverAddr,
sizeof(serverAddr));
void shutdown() override
Releases whatever init() acquired.
void write(LogLevel level, const char *line, size_t len) override
Writes one already-formatted, newline-terminated line.
bool init(const LogConfig &config) override
Opens whatever handle/socket/file this backend needs, using only fields from config (nothing hardcode...
LogLevel
Severity of a single log call.
Full runtime configuration for the Logger.
uint16_t targetPort
Destination UDP port for the UDP backend.
const char * targetIp
Destination IPv4 address for the UDP backend.
bool nonBlocking
socket is always created non-blocking; kept for clarity/future use