Я знаю, что есть способ избавиться от текста c из сообщений журнала и сохранить в памяти только переменную часть сообщения. Но я не уверен, как именно это делается.
Чтобы привести конкретный пример к тому, что я имею в виду:
Вот код для клиента:
#include <stdio.h>
#include "my_logging.h"
int main() {
MY_CUSTOM_LOGGING_TECHNIQUE("This is message %d", int, 1);
MY_CUSTOM_LOGGING_TECHNIQUE("This is message %d", int, 2);
return 0;
}
И что нужно сделать:
- Во время компиляции / сборки:
Создать XML файл во время компиляции / сборки, чтобы дать идентификатор для каждого сообщения:
<xml>
<message params=1>
<id>123456</id>
<text>This is message %d</text>
<param>int</param>
</message>
<message params=1>
<id>456342</id>
<text>This is message %d</text>
<param>int</param>
</message>
</xml>
Во время выполнения: только идентификатор сообщения хранится вместе со значениями параметров в соответствующей структуре (показана здесь как массив 'messages_array'): messages_array:
Во время последующей обработки: значения, сохраненные во время выполнения, повторяются и объединяются с файлом XML, сохраненным во время сборки. На этом шаге постобработки будет сгенерирован файл журнала:
Это сообщение 1
Это сообщение 2
Основная проблема, которую я пытаюсь решить, это "Отсутствие для записи текста c в файл во время выполнения. Вместо этого, только идентификатор сообщения и значение аргумента, отправленного в сообщении.
Итак, как я могу это сделать?