Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class text_file_backend

Boost , Chapter 1. Boost.Log v2 , Sinks

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class text_file_backend

boost::log::sinks::text_file_backend — An implementation of a text file logging sink backend.

Synopsis

// In header: <boost/log/sinks/text_file_backend.hpp>

class text_file_backend : public basic_formatted_sink_backend< char, combine_requirements< synchronized_feeding, flushing >::type >
{
public:
  // types
  typedef base_type::char_type            char_type;                      // Character type. 
  typedef base_type::string_type          string_type;                    // String type to be used as a message text holder. 
  typedef std::basic_ostream< char_type > stream_type;                    // Stream type. 
  typedef unspecified                     open_handler_type;              // File open handler. 
  typedef unspecified                     close_handler_type;             // File close handler. 
  typedef unspecified                     time_based_rotation_predicate;  // Predicate that defines the time-based condition for file rotation. 
  // construct/copy/destruct
  text_file_backend();
  template<typename... ArgsT> explicit text_file_backend(ArgsT...const &);
  ~text_file_backend();
  // public member functions
  template<typename PathT> void set_file_name_pattern(PathT const &);
  void set_open_mode(std::ios_base::openmode);
  void set_file_collector(shared_ptr< file::collector > const &);
  void set_open_handler(open_handler_type const &);
  void set_close_handler(close_handler_type const &);
  void set_rotation_size(uintmax_t);
  void set_time_based_rotation(time_based_rotation_predicate const &);
  void auto_flush(bool = true);
  uintmax_t scan_for_files(file::scan_method = file::scan_matching, 
                           bool = true);
  void consume(record_view const &, string_type const &);
  void flush();
  void rotate_file();
};

Description

Бэкэнд раковины помещает отформатированные записи журнала в текстовый файл. Ячейка поддерживает ротацию файлов и расширенное управление файлами, такое как ограничение размера и количества файлов.

text_file_backend public construct/copy/destruct

  1. text_file_backend();

    Конструктор по умолчанию. Сконструированный панцирь раковины использует значения по умолчанию всех параметров.

  2. <
    template<typename...ArgsT>explicittext_file_backend(ArgsT...const&args);
    >

    Конструктор. Создает бэкэнд раковины с заданными названными параметрами. Поддерживаются следующие названные параметры:

    • <file_name>— Указывает шаблон имени файла, в который фактически записываются журналы. Паттерн может содержать части каталога и имени файла, но только имя файла может содержать заполнители. Бэкэнд поддерживает Boost. Заполнители DateTime для введения текущего времени и даты в имя файла. Также поддерживается дополнительный N-заполнитель, он будет заменен интегральным увеличивающим счетчиком файлов. Заполнитель может также содержать спецификацию ширины в печатно-совместимой форме (например, %5N). Отпечатанный счетчик файлов всегда будет нулевым. Если<file_name>не указано, используется шаблон «%5N.log».

    • <open_mode>- Открытый режим файла. Режим должен быть представлен в виде маски, совместимой с<std::ios_base::openmode>. Если не указано,<trunc | out>будет использоваться.

    • <rotation_size>- Указывает приблизительный размер, в написанных символах, временного файла, на котором файл передается сборщику файлов. Обратите внимание, что размер не учитывает любые возможные преобразования символов, которые могут иметь место во время записи в файл. Если не указано, файл не будет повернут при достижении любого размера.

    • <time_based_rotation>— указывает предикат для ротации файлов на основе времени. Ротации файлов на основе времени не будут выполняться, если не указано.

    • <auto_flush>- Указывает флаг, следует ли автоматически смывать файл после каждой записи журнала. По умолчанию<false>

      .

    [Note]Note

    Прочитайте предостережение относительно шаблона имени файла в документации<sinks::file::collector::scan_for_files>.

  3. <
    ~text_file_backend();
    >

    Разрушитель

text_file_backend public member functions

  1. template<typenamePathT>voidset_file_name_pattern(PathTconst&pattern);

    Метод устанавливает имя файла wildcard для записываемых файлов. Wildcard поддерживает ввод даты и времени в имя файла.

  2. <
    voidset_open_mode(std::ios_base::openmodemode);
    >

    Способ задает файлу открытый режим

  3. Параметры:

    pattern

    Узор имени для написанного файла.

    Параметры:

  • voidset_file_collector(shared_ptr<file::collector>const&collector);

    Метод задает функцию сбора лог-файлов. Функция называется ротацией файлов и передается имя файла.

    Параметры:

    Объект функции сборщика файлов

  • <
    voidset_open_handler(open_handler_typeconst&handler);
    >

    Метод устанавливает обработчик открытия файлов. Обработчик будет звонить каждый раз, когда бэкэнд открывает новый временный файл. Обработчик может написать заголовок к открытому файлу для поддержания действительности файла.

    Параметры:

    Объект функции открытого обработчика файлов

  • voidset_close_handler(close_handler_typeconst&handler);

    Метод устанавливает обработчик закрытия файлов. Обработчик будет вызываться каждый раз, когда бэкэнд закрывает временный файл. Обработчик может написать нижний колонтитул к открытому файлу для поддержания действительности файла.

    Параметры:

    handler

    Объект функции обработчика файлов

  • <
    voidset_rotation_size(uintmax_tsize);
    >

    Метод устанавливает максимальный размер файла. При достижении размера выполняется ротация файлов.

    [Note]Примечание

    Размер не учитывает возможные переводы символов, которые могут произойти в базовом API. Это может привести к увеличению фактических размеров письменных файлов.

    Параметры:

    <size>

    <size><size><size><size><size><size><size><size><size><size><size><size><size><size><size><size><size><size><size>

    <size><size>

    Максимальный размер файла, в символах.

  • voidset_time_based_rotation(time_based_rotation_predicateconst&predicate);

    Метод устанавливает предикат, который определяет основанное на времени условие для вращения файла.

    [Note]Примечание

    Вращение всегда происходит при записи записи журнала, поэтому вращение не строго связано с указанным условием.

    Параметры:

    Предикат, который определяет основанное на времени условие для вращения файла. Если оно пусто, то не будет происходить никакого временного вращения

    .
  • <
    voidauto_flush(boolf=true);
    >

    Устанавливает флаг для автоматической промывки буферов всех подключенных потоков после каждой записи журнала

    .
  • uintmax_tscan_for_files(file::scan_methodmethod=file::scan_matching,
                            boolupdate_counter=true);

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

    Сканирование файла может быть выполнено двумя способами: либо все файлы в целевом каталоге будут рассматриваться как файлы журнала, либо только те файлы, которые удовлетворяют шаблону имени файла. Более подробную информацию см. в документации поsinks::file::collector::scan_for_files

    [Note]Примечание

    Способ по существу делегирует одноимённой функции коллектора файлов.

    Параметры:

    method

    Способ сканирования файлов

    update_counter

    Еслиtrueиметодявляетсяscan_matching, метод пытается обновить внутренний счетчик файлов в соответствии с найденными файлами. Счетчик не затрагивается иначе.

    Требования:

    Коллектор файлов и правильный шаблон имени файла уже установлены.

    Возвращение:

    Количество найденных файлов

  • voidconsume(record_viewconst&rec,string_typeconst&formatted_message);

    Способ записывает сообщение в раковину

  • <
    voidflush();
    >

    Метод смывает открытый файл журнала

  • voidrotate_file();

    Способ вращает файл


  • PrevUpHomeNext

    Статья Class text_file_backend раздела Chapter 1. Boost.Log v2 Sinks может быть полезна для разработчиков на c++ и boost.




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



    :: Главная :: Sinks ::


    реклама


    ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
    Top.Mail.Ru

    Время компиляции файла: 2024-08-30 11:47:00
    2025-05-20 01:23:08/0.0077888965606689/1