![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| JanryMayers |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.6.2009 Где: Украина, г. Киев Репутация: нет Всего: нет |
Всем, привет.
Вообщем хочу логгер написать, порылся в инете нашел кое-что немного переделал. Код работает без ошибок, создает фаил, но ничего туда не пишет. Кто нибудь может объяснить почему? *.h
*.cpp
вызываю - LOG_INFO("Help!"); |
||||
|
|||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: нет Всего: 5 |
std::ofstream hLogFile; - std::ofstream logger::LogFile; ?
Это сообщение отредактировал(а) asmdzen - 8.5.2011, 19:22 |
|||
|
||||
| JanryMayers |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.6.2009 Где: Украина, г. Киев Репутация: нет Всего: нет |
спс за замечание).
Вот исправил таким образом.
|
||||
|
|||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: нет Всего: 5 |
||||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
у тебя логгер под какую ОС ?
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| JanryMayers |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.6.2009 Где: Украина, г. Киев Репутация: нет Всего: нет |
вообще win64 7, но я приложение собираю для win32. (msvc8)
не это не помогает там дела в другом, предполагаю, что в функции Logger::Initialize() создается нужный мне файл, а когда я вызываю макрос для вывода информации, то в Logger::Process() открывается файл с именем, предположительно файла из которого был вызван макрос, те на имя файла который передается сюда
параметром __FILE__,. Это сообщение отредактировал(а) JanryMayers - 9.5.2011, 23:09 |
||||||
|
|||||||
| JanryMayers |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.6.2009 Где: Украина, г. Киев Репутация: нет Всего: нет |
Вообщем разобрался в чем дело. В функции Logger::Process()
std::ofstream hLogFile(hLogPath,std::ios::app); - в hLogPath, приходит какой то мусор. Вопрос почему? И как грамотно реализовать обращение к hLogPath, что бы при инициализации создавался и прописывался путь и имя файла, а в Logger::Process() этот путь с именем того же файла использовался. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Ошибка тут -
Это сообщение отредактировал(а) xvr - 10.5.2011, 13:06 |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: нет Всего: 5 |
вообщето помогает ) у меня все нормально пишет с таким кодом:
Это сообщение отредактировал(а) asmdzen - 10.5.2011, 16:35 |
|||
|
||||
| JanryMayers |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.6.2009 Где: Украина, г. Киев Репутация: нет Всего: нет |
странно почему c_str так работает... разве её данные нельзя никак скопировать?
я сделал так, но считаю что это неудачный вариант
Это сообщение отредактировал(а) JanryMayers - 15.5.2011, 23:56 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Ничего странного, все логично. Результат, выданный ею не может пережить сам объект, который этот результат произвел.
Можно (выделяйте память под массив char'ов и копируйте туда), но не нужно. Просто сделайте ваш hLogPath типа std::string Это неправильный вариант. Он ничем не отличается от первоначального - hLogPath в вызове Logger::Logging() все так же будет указывать на мусор PS. Ваш Logger имеет смысл сделать singleton'ом, а не полностью статическим классом, как он сделан сейчас |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
JanryMayers, камрад - есть же кошерные логгеры с исходным кодом - вот к примеру. Уж если и есть жажда к велосипедо-строительству и не желание использовать готовые решения, кури их исходники. профита будет в разы больше.
|
|||
|
||||
| JanryMayers |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.6.2009 Где: Украина, г. Киев Репутация: нет Всего: нет |
xvr, блин затупил, конечно там мусор...
mrbrooks, спасибо за заботу, пробывал я перебрал.. кучу логеров... везде проблемы со сборкой... плюнул и решил свой написать, хоть и очень хочется заюзать готовый и забыть об этой проблеме навсегда. Это сообщение отредактировал(а) JanryMayers - 19.5.2011, 00:27 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |