Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Log


Автор: kapusta007 21.8.2020, 20:12
Добрый день! Делаю систему логирования для программы, в программе есть несколько основных классов которые работают  каждый в своем потоке. для логирования используется один файл собственно куда пишутся логи. Есть класс для логирования Sys_Loger в котором есть поток для запаси в файл , и при записи захватывается мютекс, чтобы не была каша. Для того что бы писать в один файл, надо что бы класс Sys_Loger был либо в глобальной видимости (при этом не плохо настраивается уровень логирования),  или имел static поток ввода\вывода   но при этом возникает ошибка линковщика из-за того что во многих файлах определен поток ввода\вывода(но можно сделать более гибкое управление уровнем логирования). Подскажите как более правильно сделать какие мысли? можно вынести файловый поток в глобальную видимость.

Автор: Guinness 22.8.2020, 20:24
Существующие открытые реализации чем-то не угодили см. https://en.cppreference.com/w/cpp/links/libs? 

Цитата(kapusta007 @  21.8.2020,  21:12 Найти цитируемый пост)
имел static поток ввода\вывода   но при этом возникает ошибка линковщика из-за того что во многих файлах определен поток ввода\вывода(но можно сделать более гибкое управление уровнем логирования)

Без примера кода сложно что-то сказать.


Автор: xvr 26.8.2020, 14:29
Цитата(kapusta007 @  21.8.2020,  20:12 Найти цитируемый пост)
Подскажите как более правильно сделать какие мысли?

Singleton?

Автор: GremlinProg 7.10.2020, 19:35
Для генерации логов можно использовать банальный https://docs.microsoft.com/en-us/windows/win32/api/debugapi/nf-debugapi-outputdebugstringw. Он потокобезопасный и простой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)