From 829318046ab576c637e9557ef76328ef750fddd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Sun, 5 Feb 2023 00:11:00 +0100 Subject: [PATCH] rsyslog is working --- src/DebugConfiguration.cpp | 23 +++++++++++++++++------ src/DebugConfiguration.h | 3 ++- src/RedirectablePrint.cpp | 7 ++++++- src/mesh/eth/ethClient.cpp | 2 +- src/mesh/http/WiFiAPClient.cpp | 2 +- 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/DebugConfiguration.cpp b/src/DebugConfiguration.cpp index 875d4d129..9df402e77 100644 --- a/src/DebugConfiguration.cpp +++ b/src/DebugConfiguration.cpp @@ -40,7 +40,11 @@ Syslog::Syslog(UDP &client) Syslog &Syslog::server(const char *server, uint16_t port) { - this->_server = server; + if (this->_ip.fromString(server)) { + this->_server = NULL; + } else { + this->_server = server; + } this->_port = port; return *this; } @@ -93,6 +97,11 @@ bool Syslog::isEnabled() } bool Syslog::vlogf(uint16_t pri, const char *fmt, va_list args) +{ + return this->vlogf(pri, this->_appName, fmt, args); +} + +bool Syslog::vlogf(uint16_t pri, const char *appName, const char *fmt, va_list args) { char *message; size_t initialLen; @@ -111,13 +120,13 @@ bool Syslog::vlogf(uint16_t pri, const char *fmt, va_list args) vsnprintf(message, len + 1, fmt, args); } - result = this->_sendLog(pri, message); + result = this->_sendLog(pri, appName, message); delete[] message; return result; } -inline bool Syslog::_sendLog(uint16_t pri, const char *message) +inline bool Syslog::_sendLog(uint16_t pri, const char *appName, const char *message) { int result; @@ -149,13 +158,15 @@ inline bool Syslog::_sendLog(uint16_t pri, const char *message) this->_client->print(F(">1 - ")); this->_client->print(this->_deviceHostname); this->_client->print(' '); - this->_client->print(this->_appName); + this->_client->print(appName); this->_client->print(F(" - - - \xEF\xBB\xBF")); - this->_client->print(F("[0]: ")); + this->_client->print(F("[")); + this->_client->print(int(millis() / 1000)); + this->_client->print(F("]: ")); this->_client->print(message); this->_client->endPacket(); return true; } -#endif \ No newline at end of file +#endif diff --git a/src/DebugConfiguration.h b/src/DebugConfiguration.h index 3bf476f72..36b009ff2 100644 --- a/src/DebugConfiguration.h +++ b/src/DebugConfiguration.h @@ -131,7 +131,7 @@ class Syslog uint8_t _priMask = 0xff; bool _enabled = false; - bool _sendLog(uint16_t pri, const char *message); + bool _sendLog(uint16_t pri, const char *appName, const char *message); public: explicit Syslog(UDP &client); @@ -148,6 +148,7 @@ class Syslog bool isEnabled(); bool vlogf(uint16_t pri, const char *fmt, va_list args) __attribute__((format(printf, 3, 0))); + bool vlogf(uint16_t pri, const char *appName, const char *fmt, va_list args) __attribute__((format(printf, 3, 0))); }; #endif // HAS_ETHERNET || HAS_WIFI diff --git a/src/RedirectablePrint.cpp b/src/RedirectablePrint.cpp index c7f60f980..14e85f0c8 100644 --- a/src/RedirectablePrint.cpp +++ b/src/RedirectablePrint.cpp @@ -124,7 +124,12 @@ size_t RedirectablePrint::log(const char *logLevel, const char *format, ...) default: ll = 0; } - syslog.vlogf(ll, format, arg); + auto thread = concurrency::OSThread::currentThread; + if (thread) { + syslog.vlogf(ll, thread->ThreadName.c_str(), format, arg); + } else { + syslog.vlogf(ll, format, arg); + } } #endif diff --git a/src/mesh/eth/ethClient.cpp b/src/mesh/eth/ethClient.cpp index 22365c647..659de05f8 100644 --- a/src/mesh/eth/ethClient.cpp +++ b/src/mesh/eth/ethClient.cpp @@ -45,7 +45,7 @@ static int32_t reconnectETH() LOG_INFO("Starting Syslog client\n"); // Defaults int serverPort = 514; - const char *serverAddr = moduleConfig.mqtt.address; + const char *serverAddr = config.network.rsyslog_server; String server = String(serverAddr); int delimIndex = server.indexOf(':'); if (delimIndex > 0) { diff --git a/src/mesh/http/WiFiAPClient.cpp b/src/mesh/http/WiFiAPClient.cpp index a1cf98bb3..cc8d4b168 100644 --- a/src/mesh/http/WiFiAPClient.cpp +++ b/src/mesh/http/WiFiAPClient.cpp @@ -142,7 +142,7 @@ static void onNetworkConnected() LOG_INFO("Starting Syslog client\n"); // Defaults int serverPort = 514; - const char *serverAddr = moduleConfig.mqtt.address; + const char *serverAddr = config.network.rsyslog_server; String server = String(serverAddr); int delimIndex = server.indexOf(':'); if (delimIndex > 0) {