refactor: Move all messages that are checked for by GUI in the log to new IPC Level so the gui can work with any filter level
This commit is contained in:
parent
78eb353985
commit
cba3881f41
7 changed files with 22 additions and 15 deletions
|
|
@ -100,7 +100,13 @@ std::vector<char> makeMessage(const char *filename, int lineNumber, const char *
|
||||||
makeTimeString(timeBuffer);
|
makeTimeString(timeBuffer);
|
||||||
|
|
||||||
size_t timestampLength = strnlen(timeBuffer.data(), timeBufferSize);
|
size_t timestampLength = strnlen(timeBuffer.data(), timeBufferSize);
|
||||||
size_t priorityLength = strnlen(g_priority[currentPriority], priorityMaxSize);
|
|
||||||
|
auto sectionName = "IPC";
|
||||||
|
if (priority != LogLevel::IPC) {
|
||||||
|
sectionName = g_priority[currentPriority];
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t priorityLength = strnlen(sectionName, priorityMaxSize);
|
||||||
size_t messageLength = strnlen(message, SIZE_MAX);
|
size_t messageLength = strnlen(message, SIZE_MAX);
|
||||||
size_t bufferSize = baseSize + timestampLength + priorityLength + messageLength;
|
size_t bufferSize = baseSize + timestampLength + priorityLength + messageLength;
|
||||||
|
|
||||||
|
|
@ -113,22 +119,20 @@ std::vector<char> makeMessage(const char *filename, int lineNumber, const char *
|
||||||
std::vector<char> buffer(bufferSize);
|
std::vector<char> buffer(bufferSize);
|
||||||
#ifndef __APPLE__
|
#ifndef __APPLE__
|
||||||
std::format_to_n(
|
std::format_to_n(
|
||||||
buffer.data(), bufferSize, "[{}] {}: {}\n\t{}:{}", timeBuffer.data(), g_priority[currentPriority], message,
|
buffer.data(), bufferSize, "[{}] {}: {}\n\t{}:{}", timeBuffer.data(), sectionName, message, filename, lineNumber
|
||||||
filename, lineNumber
|
|
||||||
);
|
);
|
||||||
#else
|
#else
|
||||||
snprintf(
|
snprintf(
|
||||||
buffer.data(), bufferSize, "[%s] %s: %s\n\t%s:%d", timeBuffer.data(), g_priority[currentPriority], message,
|
buffer.data(), bufferSize, "[%s] %s: %s\n\t%s:%d", timeBuffer.data(), sectionName, message, filename, lineNumber
|
||||||
filename, lineNumber
|
|
||||||
);
|
);
|
||||||
#endif
|
#endif
|
||||||
return buffer;
|
return buffer;
|
||||||
} else {
|
} else {
|
||||||
std::vector<char> buffer(bufferSize);
|
std::vector<char> buffer(bufferSize);
|
||||||
#ifndef __APPLE__
|
#ifndef __APPLE__
|
||||||
std::format_to_n(buffer.data(), bufferSize, "[{}] {}: {}", timeBuffer.data(), g_priority[currentPriority], message);
|
std::format_to_n(buffer.data(), bufferSize, "[{}] {}: {}", timeBuffer.data(), sectionName, message);
|
||||||
#else
|
#else
|
||||||
snprintf(buffer.data(), bufferSize, "[%s] %s: %s", timeBuffer.data(), g_priority[currentPriority], message);
|
snprintf(buffer.data(), bufferSize, "[%s] %s: %s", timeBuffer.data(), sectionName, message);
|
||||||
#endif
|
#endif
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
@ -288,7 +292,7 @@ LogLevel Log::getFilter() const
|
||||||
|
|
||||||
void Log::output(LogLevel priority, const char *msg)
|
void Log::output(LogLevel priority, const char *msg)
|
||||||
{
|
{
|
||||||
assert(static_cast<int>(priority) >= -1 && static_cast<int>(priority) < g_numPriority);
|
assert(static_cast<int>(priority) >= -2 && static_cast<int>(priority) < g_numPriority);
|
||||||
assert(msg != nullptr);
|
assert(msg != nullptr);
|
||||||
if (!msg)
|
if (!msg)
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -197,6 +197,7 @@ otherwise it expands to a call that doesn't.
|
||||||
// end, then we resort to using non-numerical chars. this still works (since
|
// end, then we resort to using non-numerical chars. this still works (since
|
||||||
// to deduce the number we subtract octal \060, so '/' is -1, and ':' is 10
|
// to deduce the number we subtract octal \060, so '/' is -1, and ':' is 10
|
||||||
|
|
||||||
|
#define CLOG_IPC CLOG_TRACE "%z\056" // char is '' ?
|
||||||
#define CLOG_PRINT CLOG_TRACE "%z\057" // char is '/'
|
#define CLOG_PRINT CLOG_TRACE "%z\057" // char is '/'
|
||||||
#define CLOG_CRIT CLOG_TRACE "%z\060" // char is '0'
|
#define CLOG_CRIT CLOG_TRACE "%z\060" // char is '0'
|
||||||
#define CLOG_ERR CLOG_TRACE "%z\061"
|
#define CLOG_ERR CLOG_TRACE "%z\061"
|
||||||
|
|
@ -210,6 +211,7 @@ otherwise it expands to a call that doesn't.
|
||||||
#define CLOG_DEBUG4 CLOG_TRACE "%z\071" // char is '9'
|
#define CLOG_DEBUG4 CLOG_TRACE "%z\071" // char is '9'
|
||||||
#define CLOG_DEBUG5 CLOG_TRACE "%z\072" // char is ':'
|
#define CLOG_DEBUG5 CLOG_TRACE "%z\072" // char is ':'
|
||||||
|
|
||||||
|
#define LOG_IPC(...) LOG((CLOG_IPC __VA_ARGS__))
|
||||||
#define LOG_PRINT(...) LOG((CLOG_PRINT __VA_ARGS__))
|
#define LOG_PRINT(...) LOG((CLOG_PRINT __VA_ARGS__))
|
||||||
#define LOG_CRIT(...) LOG((CLOG_CRIT __VA_ARGS__))
|
#define LOG_CRIT(...) LOG((CLOG_CRIT __VA_ARGS__))
|
||||||
#define LOG_ERR(...) LOG((CLOG_ERR __VA_ARGS__))
|
#define LOG_ERR(...) LOG((CLOG_ERR __VA_ARGS__))
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ The logging priority levels in order of highest to lowest priority.
|
||||||
*/
|
*/
|
||||||
enum class LogLevel
|
enum class LogLevel
|
||||||
{
|
{
|
||||||
|
IPC = -2, //!< For IPC Messages the gui must see, remove when IPC works proper
|
||||||
Print = -1, //!< For print only (no file or time)
|
Print = -1, //!< For print only (no file or time)
|
||||||
Fatal, //!< For fatal errors
|
Fatal, //!< For fatal errors
|
||||||
Error, //!< For serious errors
|
Error, //!< For serious errors
|
||||||
|
|
|
||||||
|
|
@ -110,9 +110,9 @@ void Client::connect(size_t addressIndex)
|
||||||
// m_serverAddress will be null if the hostname address is not reolved
|
// m_serverAddress will be null if the hostname address is not reolved
|
||||||
if (m_serverAddress.getAddress() != nullptr) {
|
if (m_serverAddress.getAddress() != nullptr) {
|
||||||
// to help users troubleshoot, show server host name (issue: 60)
|
// to help users troubleshoot, show server host name (issue: 60)
|
||||||
LOG(
|
LOG_IPC(
|
||||||
(CLOG_NOTE "connecting to '%s': %s:%i", m_serverAddress.getHostname().c_str(),
|
"connecting to '%s': %s:%i", m_serverAddress.getHostname().c_str(),
|
||||||
ARCH->addrToString(m_serverAddress.getAddress()).c_str(), m_serverAddress.getPort())
|
ARCH->addrToString(m_serverAddress.getAddress()).c_str(), m_serverAddress.getPort()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -637,7 +637,7 @@ bool SecureSocket::verifyCertFingerprint(const QString &FingerprintDatabasePath)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Gui Must Parse this line, DO NOT CHANGE
|
// Gui Must Parse this line, DO NOT CHANGE
|
||||||
LOG_NOTE("peer fingerprint: %s", qPrintable(deskflow::formatSSLFingerprint(sha256.data, false)));
|
LOG_IPC("peer fingerprint: %s", qPrintable(deskflow::formatSSLFingerprint(sha256.data, false)));
|
||||||
|
|
||||||
QFile file(FingerprintDatabasePath);
|
QFile file(FingerprintDatabasePath);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -185,7 +185,7 @@ bool ClientProxy1_0::parseMessage(const uint8_t *code)
|
||||||
|
|
||||||
void ClientProxy1_0::handleDisconnect()
|
void ClientProxy1_0::handleDisconnect()
|
||||||
{
|
{
|
||||||
LOG_NOTE("client \"%s\" has disconnected", getName().c_str());
|
LOG_IPC("client \"%s\" has disconnected", getName().c_str());
|
||||||
disconnect();
|
disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -198,7 +198,7 @@ void ClientProxy1_0::handleWriteError()
|
||||||
void ClientProxy1_0::handleFlatline()
|
void ClientProxy1_0::handleFlatline()
|
||||||
{
|
{
|
||||||
// didn't get a heartbeat fast enough. assume client is dead.
|
// didn't get a heartbeat fast enough. assume client is dead.
|
||||||
LOG_NOTE("client \"%s\" is dead", getName().c_str());
|
LOG_IPC("client \"%s\" is dead", getName().c_str());
|
||||||
disconnect();
|
disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -246,7 +246,7 @@ void Server::adoptClient(BaseClientProxy *client)
|
||||||
closeClient(client, kMsgEBusy);
|
closeClient(client, kMsgEBusy);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
LOG_NOTE("client \"%s\" has connected", getName(client).c_str());
|
LOG_IPC("client \"%s\" has connected", getName(client).c_str());
|
||||||
|
|
||||||
// send configuration options to client
|
// send configuration options to client
|
||||||
sendOptions(client);
|
sendOptions(client);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue