Пользовательская регистрация для выполнения в режиме DEBUG для приложения C на Linux

Я хочу понять, как разработать приложение (только C) для Linux, чтобы я мог получить файлы журнала, сгенерированные для него в режиме отладки. Syslog - это демон, и сообщения журнала, зарегистрированные нашим приложением, смешиваются с другими сообщениями. Я хочу, чтобы пользовательский файл журнала (но не тот же журнал, что системный журнал, но специфичный для этого приложения и может быть один и тот же файл каждый раз или другой для каждого выполнения).

Я специально прошу режим DEBUG, чтобы сузить вопрос, но в идеале я хочу реализовать 3 режима выполнения: режим LOG включен (не отладка), режим LOG отключен (не режим отладки), режим DEBUG (журнал будет создаваться в этом режиме дефолт).

1 ответ

Решение

Для этого нет интерфейса библиотеки, если это то, что вы ищете.

Ваше приложение должно будет открыть сам файл журнала, а затем вы можете определить набор функций для входа в систему как "ошибка", "предупреждение", "информация", "отладка" и т. Д.

Вы также захотите иметь какой-то метод, чтобы периодически свернуть ваши файлы журнала.

Если вы хотите использовать размер на основе прокатки, вы можете использовать fprintf распечатать в журнал, а затем захватить возвращаемое значение, чтобы получить количество записанных байтов. Затем вы можете добавить это значение к счетчику и посмотреть, достигли ли вы порогового значения размера. Если вместо этого вы хотите прокатку на основе даты, вы можете установить время следующего броска, а затем проверить, наступило ли текущее время после этого времени.

Когда вы достигнете критериев прокрутки, вы закроете текущий файл журнала, переименуете этот файл (вместе со старыми файлами, если это будет необходимо), а затем откройте новый файл журнала.

Чтобы сохранить определенное количество файлов, скажем, n файлы журналов, сначала удалите logfile.nзатем переименуйте logfile.n-1 в logfile.n, logfile.n-2 в logfile.n-1и т. д., пока вы не получите самый последний файл, который вы переименовали из logfile в logfile.1,

Для скользящей даты вам нужно переименовать только самый последний файл журнала из logfile в logfile.YYYYMMDD если вы хотите ежедневно кататься, logfile.YYYYMMDD_HH если ты хочешь ежечасное катание и так далее.

Другие вопросы по тегам