LINUX.ORG.RU

Помогите создать логгер

 


0

4

Помогите создать логгер по данному заданию. Написать логгер для многопоточной среды.

Общая информация:

Логгер - это некий канал для передачи сообщений или информационных данных (сообщения об ошибках, вспомогательные данные для отладки и т.д.) из приложения и сохранения их для последующей обработки и анализа. В общем случае, данные могут передаваться куда-то по сети или записываться в файл на машине. У каждого сообщения есть уровень логирования (log level). Уровень логирования указывает важность принимаемых сообщений. Обычно уровни логирования бывают такие: *CRITICAL: Информация о критических ошибках * ERROR: Информация об ошибках возникших при работе приложения *WARNING: Информация о мелких проблемах возникших при работе приложения * INFO: Общая информация * DEBUG: Логирование информации для последующего использования в отладке

Задача:

Написать простейший логгер (набор структур и функций для С или класс для С++), который записывает логгируемые данные (только текст) из программы в текстовый файл на компьютере, где он запущен.

Логгер должен: * Логгировать только текстовую информацию. * Каждая запись должна содержать: - время когда она была сделана в формате «YYYY-MM-DD HH:MM:SS» - уровень логирования, с которым запись была помещена в лог. * Логгер должен работать в многпоточной среде, то есть несколько потоков должны иметь возможность писать в лог (один и тот же файл).

Необходимо так же написать простейшее консольное тестовое приложение к логгеру.

Использовать можно, либо С, либо С++, на выбор. Желательно под Linux, но можно и под Windows. Можно использовать любую доступную среду разработки и компилятор С или С++.

Или подскажите где почитать. Проблема в том, что с подобного рода задачами не сталкивался НИКОГДА. Поэтому даже не знаю с чего начинать.



Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от no-dashi

но они не могут быть проще чем задача.

Могут. Если ты обоснуешь клиенту, что это ему «не нужно»

Могут и сложнее быть... Если обоснуешь, но это сложнее :) Например, этот твой IPC может быть не нужен по одной простой причине - «не нужен» :) Нужен «простейший логгер» (с)

Так что, марш доучиваться

Сказал теоретик, ощущая жжение. «Это тебя 5.1 твоя гордость, Бутч» (с)

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

Если ты обоснуешь клиенту, что это ему «не нужно»

Ну давай, обоснуй что твой «простейший» in-processs логгер не запорет логи в случае ошибки. А мы с интересом посмотрим, как ты запретишь себе заись в файл, в который тебе должна быть разрешена запись.

no-dashi ★★★★★
()
Ответ на: комментарий от slackwarrior

Например, этот твой IPC может быть не нужен по одной простой причине - «не нужен»

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

Правада, чтобы понять этот факт, нужно сначала вспомнить правила работы и обязательные требования к «логгированию», с чем у тебя явно наблюдаются проблемы - «не знал, да ещё и забыл».

no-dashi ★★★★★
()
Ответ на: комментарий от slackwarrior

Ай-яй-яй, что, не получается ничего по теме возразить? Ну ничего, бывает такое, когда влезаешь в тему в которой не сечешью

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

«НетЪ ты!» (с) Ты давно не по теме возражаешь :) А все потому, что с тобой не согласны Такое бывает, когда ты считаешь себя экспертом в теме, в которой сечешь не больше других :) Просто считаешь свою точку зрения единственно верной, безо всяких к тому оснований.

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

Я писал «очень простые логгеры» (типа того который предлагаешь ты) в каждой программе - но не счиатю это правильным. Потому и считаю, что если задание не написать программу, а написать именно логгер - то это отличный шанс сделать всё правильно, а не на «отвяжитесь».

no-dashi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.