Cross-Platform Programming with wxWidgets
Just Make It Cross-Platform
Subscribe to Feed
  • Home
  • Projects
  • Links

Прозрачное журналирование с wxLog

wxWidgets Add comments |

В wxWidgets есть отличный механизм журналирования wxLog.
С его помощью можно решить проблему ведения лога одновременно в файл и, например, в текстовый контрол.

Если необходимо выводить сообщения в файл не только в ANSI, а и в Unicode,
то очень удобно использовать логгер wxLogStream.
Для его использования, потребуется собрать (если еще не собрано) wxWidgets с выставленной поддержкой std потоков:

#define wxUSE_STD_IOSTREAM 1

в файле setup.h. После этого, в приложении потребуется установить целевой логгер:

//wxTestApp.h
// в классе приложения добавить мембер потока
...
#include
...

class wxTestApp: public wxApp
{
...
private:
    std::ofstream m_logStream;
...
};

//wxTestApp.cpp
// в OnInit() проинициализировать целевой логгер

bool wxCDCreatorApp::OnInit() {
    // задаем имя лога (в каталоге приложения, файл <имя файла приложения>.log
    wxString logPath = wxwxPathOnly(wxGetApp().argv[0]) +
wxFileName::GetPathSeparator() + GetAppName() +  wxT(".log");
    m_logStream.open(logPath.GetData());

    // не забываем удалить предыдущий логгер
    delete wxLog::SetActiveTarget(new wxLogStream(reinterpret_cast<std::ostream*>(&m_logStream)));

    // можно работать
    wxLogMessage(wxT("Запуск приложения..."));
...
// инициализация приложения
}

// и в OnExit() закрываем поток
int wxCDCreatorApp::OnExit()
{
    wxLogMessage(wxT("Выход..."));
    m_logStream.close();
    return wxApp::OnExit();
}

После этого, в любой части приложения возмножно с помощью функций wxLogMessage[/sourcecode], wxLogDebug[/sourcecode] (только в отладочной версии),
wxLogTrace[/sourcecode] вести журналирование. В результате работы, в лог пишутся сообщения в примерно таком формате:

09:55:05: Запуск приложения...

January 23rd, 2008 |

Tags: wxLog, wxWidgets, Статьи

Related Posts

  • Собираем сторонние компоненты wxWidgets в Code::Blocks
  • Multilingual Applications? It’s Simple!
  • Кросс-платформенная справочная система для кросс-платформенных приложений – Часть II
  • Getting Acquainted with Document-View architecture – Part I
  • Перевод книги Julian’а Smart’а – Глава XIV – Файлы и потоки
Лей дождь мечты виагра. Купить в Москве виагра .;Отель Советский. Москва - отель советский .;Новогодние бизнес подарки партнерам и эксклюзивные сувениры. Каталог бизнес сувениры услуги .;Трансформаторы тм силовые масляные. Трансформатор тм-1000 .

Leave a Reply

Please leave these two fields as-is:

  • This blog is about…

    Articles Code::Blocks Components Controls Database DatabaseLayer Document/View Eclipse Localization NetBeans Networking News Printing Reports SQLite Tutorilas Video Visual Studio wxAUI wxButton wxDev-CPP wxGrid wxHelpController wxJavaScript wxJSON wxLocale wxLog wxPaintDC wxPropertyGrid wxRuby wxSQLite3 wxThread wxValidator wxWidgets wxWinCE wxZipInputStream wxZipOutputStream XML Библиотека Книги Статьи
  • Showcase

    Visit wxToolBox Homepage

    Buy wxToolBox (with source code)

  • Archives

    • November 2009
    • September 2009
    • August 2009
    • May 2009
    • April 2009
    • March 2009
    • February 2009
    • January 2009
    • December 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • December 2007
    • June 2007
    • May 2007
    • January 2007
  • Recent Comments

    • T-Rex on Getting Acquainted with Document/View Framework – Simple Image Viewer
    • T-Rex on Сделайте мне красиво – Часть II – wxAUI в Multi-View приложений
    • Mardiko on Getting Acquainted with Document/View Framework – Simple Image Viewer
    • marty on Сделайте мне красиво – Часть II – wxAUI в Multi-View приложений
    • T-Rex on Перевод книги Julian’а Smart’а – Глава VI – Обработка данных с устройств ввода
  • Buttons

    Locations of visitors to this page

    Rambler's Top100
    Рейтинг@Mail.ru

Copyright © 2010 Cross-Platform Programming with wxWidgets All Rights Reserved
RSS Log in