From 9dbd7210cb8f90e557f8edf45c1d78c609df3c54 Mon Sep 17 00:00:00 2001 From: peri4 Date: Sat, 19 Oct 2024 16:58:12 +0300 Subject: [PATCH] PILog documentation --- libs/main/application/pilog.cpp | 38 ++---------------------- libs/main/application/pilog.h | 51 ++++++++++++++++++++++++--------- 2 files changed, 40 insertions(+), 49 deletions(-) diff --git a/libs/main/application/pilog.cpp b/libs/main/application/pilog.cpp index 27fece16..4daba584 100644 --- a/libs/main/application/pilog.cpp +++ b/libs/main/application/pilog.cpp @@ -30,44 +30,10 @@ //! \~english \section PILog_sec0 Synopsis //! \~russian \section PILog_sec0 Краткий обзор //! \~english -//! This class provide handy parsing of command-line arguments. First you should add -//! arguments to %PICLI with function \a addArgument(). Then you can check if there -//! is some argument in application command-line with function \a hasArgument(), -//! or obtain argument value by \a argumentValue(). +//! This class provides log with optional file and console output. //! //! \~russian -//! Этот класс предоставляет удобный механизм для разбора аргументов командной строки. -//! Сперва необходимо добавить аргументы в %PICLI с помощью методов \a addArgument(). -//! Далее можно проверять аргументы на наличие в командной строке методом \a hasArgument(), -//! а также получать их значения при помощи \a argumentValue(). -//! -//! \~english \section PICLI_sec1 Example -//! \~russian \section PICLI_sec1 Пример -//! \~\code -//! int main(int argc, char ** argv) { -//! PICLI cli(argc, argv); -//! cli.addArgument("console"); -//! cli.addArgument("debug"); -//! cli.addArgument("Value", "v", "value", true); -//! if (cli.hasArgument("console")) -//! piCout << "console active"; -//! if (cli.hasArgument("debug")) -//! piCout << "debug active"; -//! piCout << "Value =" << cli.argumentValue("Value"); -//! return 0; -//! } -//! \endcode -//! -//! \~english These executions are similar: -//! \~russian Эти вызовы будут идентичны: -//! -//! \~\code -//! a.out -cd -v 10 -//! a.out --value 10 -dc -//! a.out -c -v 10 -d -//! a.out --console -d -v 10 -//! a.out --debug -c --value 10 -//! \endcode +//! Этот класс предоставляет лог с опциональным выводом в файл и консоль. //! diff --git a/libs/main/application/pilog.h b/libs/main/application/pilog.h index c13f260f..15798a92 100644 --- a/libs/main/application/pilog.h +++ b/libs/main/application/pilog.h @@ -41,82 +41,107 @@ public: PILog(); ~PILog(); + //! \~english Message category + //! \~russian Категория сообщения enum class Level { - Error, - Warning, - Info, - Debug, + Error /** \~english Error \~russian Ошибка */, + Warning /** \~english Warning \~russian Предупреждение */, + Info /** \~english Information \~russian Информация */, + Debug /** \~english Debug \~russian Отладка */, }; + //! \~english Output channel + //! \~russian Канал вывода enum Output { - File = 0x1, - Console = 0x2, - All = 0xFF, + File /** \~english File \~russian Файл */ = 0x1, + Console /** \~english Console \~russian Консоль */ = 0x2, + All /** \~english All \~russian Все */ = 0xFF, }; - //! \~english Set output target \"o\" to \"on\". + //! \~english Set output channel \"o\" to \"on\". + //! \~russian Установить канал вывода \"o\" в \"on\". void setOutput(Output o, bool on = true) { output.setFlag(o, on); } //! \~english Returns prefix for filename. + //! \~russian Возвращает префикс имени файла. PIString logName() const { return log_name; } //! \~english Set prefix for filename. Should be set \b before \a setDir()! + //! \~russian Устанавливает префикс имени файла. Должен быть установлен \b до вызова \a setDir()! void setLogName(const PIString & n) { log_name = n; } //! \~english Returns if color for console output enabled. + //! \~russian Возвращает использовать ли цвет для вывода в консоль. bool colorConsole() const { return color_console; } //! \~english Set color for console output enabled. True by default. + //! \~russian Устанавливает использовать ли цвет для вывода в консоль. Включено по умолчанию. void setColorConsole(bool yes) { color_console = yes; } //! \~english Returns directory for log files. + //! \~russian Возвращает директорию для файлов. PIString dir() const { return log_dir; } //! \~english Set directory for log files. Should be set \b after \a setApplicationName()! + //! \~russian Устанавливает директорию для файлов. Должна быть установлена \b после вызова \a setApplicationName()! void setDir(const PIString & d); //! \~english Returns lifetime for file. + //! \~russian Возвращает время жизни файла. PISystemTime fileSplitTime() const { return split_time; } //! \~english Set lifetime for file. Each "st" interval new file will be created. + //! \~russian Устанавливает время жизни файла. Каждый интервал "st" будет создан новый файл. void setFileSplitTime(PISystemTime st) { split_time = st; } //! \~english Returns timestamp format for line. + //! \~russian Возвращает формат метки времени для строки. PIString timestampFormat() const { return timestamp_format; } //! \~english Set timestamp format for line. Default is "yyyy-MM-dd hh:mm:ss.zzz". + //! \~russian Устанавливает формат метки времени для строки. По умолчанию "yyyy-MM-dd hh:mm:ss.zzz". void setTimestampFormat(const PIString & f) { timestamp_format = f; } //! \~english Returns line format. + //! \~russian Возвращает формат строки. PIString lineFormat() const { return line_format; } //! \~english Set line format. "t" is timestamp, "c" is category and "m" is message. Default is "t - c: m". + //! \~russian Устанавливает формат строки. "t" - метка времени, "c" - категория и "m" - сообщение. По умолчанию "t - c: m". void setLineFormat(const PIString & f); //! \~english Returns maximum level. + //! \~russian Возвращает максимальную категорию. Level level() const { return max_level; } - //! \~english Set maximum level. All levels greater than \"l\" will be ignored. Default if \a Level::Debug. + //! \~english Set maximum level. All levels greater than \"l\" will be ignored. Default is \a Level::Debug. + //! \~russian Устанавливает максимальную категорию. Все сообщения с большей категорией, чем \"l\", будут игнорироваться. По умолчанию \a + //! Level::Debug. void setLevel(Level l); - //! \~english Returns PICout for Level::Error level. + //! \~english Returns \a PICout for \a Level::Error level. + //! \~russian Возвращает \a PICout для категории \a Level::Error. PICout error(PIObject * context = nullptr); - //! \~english Returns PICout for Level::Warning level. + //! \~english Returns \a PICout for \a Level::Warning level. + //! \~russian Возвращает \a PICout для категории \a Level::Warning. PICout warning(PIObject * context = nullptr); - //! \~english Returns PICout for Level::Info level. + //! \~english Returns \a PICout for \a Level::Info level. + //! \~russian Возвращает \a PICout для категории \a Level::Info. PICout info(PIObject * context = nullptr); - //! \~english Returns PICout for Level::Debug level. + //! \~english Returns \a PICout for \a Level::Debug level. + //! \~russian Возвращает \a PICout для категории \a Level::Debug. PICout debug(PIObject * context = nullptr); //! \~english Write all queued lines and stop. Also called in destructor. + //! \~russian Записывает все строки из очереди и останавливается. Также вызывается в деструкторе. void stop(); private: