PILog documentation

This commit is contained in:
2024-10-19 16:58:12 +03:00
parent 28f3471036
commit 9dbd7210cb
2 changed files with 40 additions and 49 deletions

View File

@@ -30,44 +30,10 @@
//! \~english \section PILog_sec0 Synopsis //! \~english \section PILog_sec0 Synopsis
//! \~russian \section PILog_sec0 Краткий обзор //! \~russian \section PILog_sec0 Краткий обзор
//! \~english //! \~english
//! This class provide handy parsing of command-line arguments. First you should add //! This class provides log with optional file and console output.
//! 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().
//! //!
//! \~russian //! \~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
//! //!

View File

@@ -41,82 +41,107 @@ public:
PILog(); PILog();
~PILog(); ~PILog();
//! \~english Message category
//! \~russian Категория сообщения
enum class Level { enum class Level {
Error, Error /** \~english Error \~russian Ошибка */,
Warning, Warning /** \~english Warning \~russian Предупреждение */,
Info, Info /** \~english Information \~russian Информация */,
Debug, Debug /** \~english Debug \~russian Отладка */,
}; };
//! \~english Output channel
//! \~russian Канал вывода
enum Output { enum Output {
File = 0x1, File /** \~english File \~russian Файл */ = 0x1,
Console = 0x2, Console /** \~english Console \~russian Консоль */ = 0x2,
All = 0xFF, 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); } void setOutput(Output o, bool on = true) { output.setFlag(o, on); }
//! \~english Returns prefix for filename. //! \~english Returns prefix for filename.
//! \~russian Возвращает префикс имени файла.
PIString logName() const { return log_name; } PIString logName() const { return log_name; }
//! \~english Set prefix for filename. Should be set \b before \a setDir()! //! \~english Set prefix for filename. Should be set \b before \a setDir()!
//! \~russian Устанавливает префикс имени файла. Должен быть установлен \b до вызова \a setDir()!
void setLogName(const PIString & n) { log_name = n; } void setLogName(const PIString & n) { log_name = n; }
//! \~english Returns if color for console output enabled. //! \~english Returns if color for console output enabled.
//! \~russian Возвращает использовать ли цвет для вывода в консоль.
bool colorConsole() const { return color_console; } bool colorConsole() const { return color_console; }
//! \~english Set color for console output enabled. True by default. //! \~english Set color for console output enabled. True by default.
//! \~russian Устанавливает использовать ли цвет для вывода в консоль. Включено по умолчанию.
void setColorConsole(bool yes) { color_console = yes; } void setColorConsole(bool yes) { color_console = yes; }
//! \~english Returns directory for log files. //! \~english Returns directory for log files.
//! \~russian Возвращает директорию для файлов.
PIString dir() const { return log_dir; } PIString dir() const { return log_dir; }
//! \~english Set directory for log files. Should be set \b after \a setApplicationName()! //! \~english Set directory for log files. Should be set \b after \a setApplicationName()!
//! \~russian Устанавливает директорию для файлов. Должна быть установлена \b после вызова \a setApplicationName()!
void setDir(const PIString & d); void setDir(const PIString & d);
//! \~english Returns lifetime for file. //! \~english Returns lifetime for file.
//! \~russian Возвращает время жизни файла.
PISystemTime fileSplitTime() const { return split_time; } PISystemTime fileSplitTime() const { return split_time; }
//! \~english Set lifetime for file. Each "st" interval new file will be created. //! \~english Set lifetime for file. Each "st" interval new file will be created.
//! \~russian Устанавливает время жизни файла. Каждый интервал "st" будет создан новый файл.
void setFileSplitTime(PISystemTime st) { split_time = st; } void setFileSplitTime(PISystemTime st) { split_time = st; }
//! \~english Returns timestamp format for line. //! \~english Returns timestamp format for line.
//! \~russian Возвращает формат метки времени для строки.
PIString timestampFormat() const { return timestamp_format; } PIString timestampFormat() const { return timestamp_format; }
//! \~english Set timestamp format for line. Default is "yyyy-MM-dd hh:mm:ss.zzz". //! \~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; } void setTimestampFormat(const PIString & f) { timestamp_format = f; }
//! \~english Returns line format. //! \~english Returns line format.
//! \~russian Возвращает формат строки.
PIString lineFormat() const { return line_format; } 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". //! \~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); void setLineFormat(const PIString & f);
//! \~english Returns maximum level. //! \~english Returns maximum level.
//! \~russian Возвращает максимальную категорию.
Level level() const { return max_level; } 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); 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); 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); 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); 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); PICout debug(PIObject * context = nullptr);
//! \~english Write all queued lines and stop. Also called in destructor. //! \~english Write all queued lines and stop. Also called in destructor.
//! \~russian Записывает все строки из очереди и останавливается. Также вызывается в деструкторе.
void stop(); void stop();
private: private: