rsyslog is working

This commit is contained in:
Thomas Göttgens 2023-02-05 00:11:00 +01:00
parent d97a09ba1f
commit 829318046a
5 changed files with 27 additions and 10 deletions

View File

@ -40,7 +40,11 @@ Syslog::Syslog(UDP &client)
Syslog &Syslog::server(const char *server, uint16_t port) Syslog &Syslog::server(const char *server, uint16_t port)
{ {
if (this->_ip.fromString(server)) {
this->_server = NULL;
} else {
this->_server = server; this->_server = server;
}
this->_port = port; this->_port = port;
return *this; return *this;
} }
@ -93,6 +97,11 @@ bool Syslog::isEnabled()
} }
bool Syslog::vlogf(uint16_t pri, const char *fmt, va_list args) 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; char *message;
size_t initialLen; 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); vsnprintf(message, len + 1, fmt, args);
} }
result = this->_sendLog(pri, message); result = this->_sendLog(pri, appName, message);
delete[] message; delete[] message;
return result; 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; int result;
@ -149,9 +158,11 @@ inline bool Syslog::_sendLog(uint16_t pri, const char *message)
this->_client->print(F(">1 - ")); this->_client->print(F(">1 - "));
this->_client->print(this->_deviceHostname); this->_client->print(this->_deviceHostname);
this->_client->print(' '); this->_client->print(' ');
this->_client->print(this->_appName); this->_client->print(appName);
this->_client->print(F(" - - - \xEF\xBB\xBF")); 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->print(message);
this->_client->endPacket(); this->_client->endPacket();

View File

@ -131,7 +131,7 @@ class Syslog
uint8_t _priMask = 0xff; uint8_t _priMask = 0xff;
bool _enabled = false; bool _enabled = false;
bool _sendLog(uint16_t pri, const char *message); bool _sendLog(uint16_t pri, const char *appName, const char *message);
public: public:
explicit Syslog(UDP &client); explicit Syslog(UDP &client);
@ -148,6 +148,7 @@ class Syslog
bool isEnabled(); 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 *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 #endif // HAS_ETHERNET || HAS_WIFI

View File

@ -124,8 +124,13 @@ size_t RedirectablePrint::log(const char *logLevel, const char *format, ...)
default: default:
ll = 0; ll = 0;
} }
auto thread = concurrency::OSThread::currentThread;
if (thread) {
syslog.vlogf(ll, thread->ThreadName.c_str(), format, arg);
} else {
syslog.vlogf(ll, format, arg); syslog.vlogf(ll, format, arg);
} }
}
#endif #endif
va_end(arg); va_end(arg);

View File

@ -45,7 +45,7 @@ static int32_t reconnectETH()
LOG_INFO("Starting Syslog client\n"); LOG_INFO("Starting Syslog client\n");
// Defaults // Defaults
int serverPort = 514; int serverPort = 514;
const char *serverAddr = moduleConfig.mqtt.address; const char *serverAddr = config.network.rsyslog_server;
String server = String(serverAddr); String server = String(serverAddr);
int delimIndex = server.indexOf(':'); int delimIndex = server.indexOf(':');
if (delimIndex > 0) { if (delimIndex > 0) {

View File

@ -142,7 +142,7 @@ static void onNetworkConnected()
LOG_INFO("Starting Syslog client\n"); LOG_INFO("Starting Syslog client\n");
// Defaults // Defaults
int serverPort = 514; int serverPort = 514;
const char *serverAddr = moduleConfig.mqtt.address; const char *serverAddr = config.network.rsyslog_server;
String server = String(serverAddr); String server = String(serverAddr);
int delimIndex = server.indexOf(':'); int delimIndex = server.indexOf(':');
if (delimIndex > 0) { if (delimIndex > 0) {