Message Stack



  • Hallo

    Ich habe ein Projekt mit sagen wir mal 500 Logausgaben.
    Teilweise mit Parametern und Teilweise ohne.

    z.B.
    LOG("Das ist eine Logausgabe\n");
    LOG("Das ist eine Logausgabe mit var %d\n", bytesread);

    Nun würde ich gerne ein Stack mit Messages aufbauen. Sollten zu einem späteren Zeitpunkt dann noch mal die Ausgaben interessant sein, dann kann man die Ausgaben dann vom Stack abrufen und sich ausgeben lassen.
    Der Stack soll wahlweise eine Size in kb oder in lines haben. So wie logread und logrotate. Da es Performance optimiert sein soll, will ich die strings nicht kopieren sondern am besten nur einen Index speichern.

    Nun suche ich nach einer eleganten Möglichkeit dieses durch einen Pre Prozessor
    in die folgende Form zu bringen:

    const char* const logmessages[] =
    {
    "Das ist eine Logausgabe\n",
    "Das ist eine Logausgabe mit var %d\n",
    ""
    };

    LOG(logmessages[1]);
    LOG(logmessages[2], __LINE__);

    Das Problem mit den Parametern kann ich damit leider nicht lösen. Hat jemand eine bessere Idee?


Anmelden zum Antworten