Sie können eine benutzerdefinierte Protokollfunktion erstellen und nur nicht benötigte Nachrichten filtern. Es könnte in etwa so aussehen:
#include <stdio.h>
#include <pthreads.h>
struct Logger
{
pthread_t blockedThreads[256];
int qty;
};
struct Logger *createLogger()
{
struct Logger *logger = (Logger *)malloc(sizeof(Logger));
logger->qty = 0;
return logger;
}
void blockThread(struct Logger *logger, pthread_t thread)
{
for (int i = 0; i < logger->qty; ++i) {
if (logger->blockedThread[i] == thread {
return;
}
}
logger->blockedThreads[logger->qty] = thread;
logger->qty++;
}
void log(struct Logger *logger, const char *message)
{
for (int i = 0; i < logger->qty; ++i) {
if (logger->blockedThread[i] == pthread_self()) {
return;
}
}
// DO REAL LOGGING HERE
}
Ich hoffe meine Idee ist klar genug für Sie.
Dies ist ein [tag: c] Frage ..... – LPs
sorry, wollte nur eine Idee zum Ausdruck bringen, Implementierung ist nicht schwer. aber ich fand ein paar Minuten und versuchte meine Lösung in C umzuschreiben. –