1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kwok-jh-nlog

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

NLog

Цель — предоставить высокогибкий, простой в использовании и быстрый C++ модуль для ведения журнала. В настоящее время применяется в Windows-приложениях для настольных компьютеров.

Особенности

  1. Асинхронность.
  2. Поточная безопасность.
  3. Множественные экземпляры. Возможность создания экземпляров с различными конфигурациями и вывода в разные файлы.
  4. Гибкость.
    • Поддержка конфигурации для определения стиля вывода.
    • Поддержка настройки размера файла журнала: при превышении размера данные автоматически выводятся в новый файл.
    • Поддержка настройки количества файлов журнала: при переполнении старые файлы автоматически удаляются.
    • Поддержка смешанного стиля вывода C/C++.
    • Поддержка использования как широких символов, так и многобайтовых строк (нет необходимости самостоятельно выполнять перекодировку при использовании многобайтовых широких символов).
  5. Производительность. Согласно неофициальным тестам, многопоточная одновременная запись 40 000 записей в один файл занимает 1,343 секунды.
  6. Интернационализация. Полное использование Unicode.
  7. Поддержка x64.

Быстрый старт

#include "nlog.h"                                                //包含头文件, 并连接对应的lib
...
_NLOG_ERR("Hello, %s", "nlog") << " Now Time:" << nlog::time;    //c,c++风格混搭格式化输出
_NLOG_WAR(L"借用一句话")        << " 此后我们的征程便是星辰大海...";
...
_NLOG_SHUTDOWN();                                                //最后执行清理

Структура организации

./
├ example                              - 示例代码目录
├ include                              - 外部引用所需的头文件
├ src                                  - 源文件
├ msvc08
|   ├ nlog.vcproj                      - vs2005 动态库项目文件 
|   └ nloglib.vcproj                   - vs2005 静态库项目文件
└ msvc10                               
    ├ nlog.sln                         - vs2010 解决方案
    ├ nlog.vcproj                      - vs2010 动态库项目文件
    ├ nloglib.vcproj                   - vs2010 静статическая библиотекапроект файла
    └ example
        ├ 01_simple.vcxproj            - 最简单的使用例子(使用动态库)
        ├ 02_custom_style.vcxproj      - 自定义打印风格的例子(使用静态库)
        ├ 03_multiple_thread.vcxproj   - 多线程并发打印同一文件40w日志
        └ 04_multiple_instance.vcxproj - 多日志实例不同配置打印4个不同的文件

Потери производительности

Поскольку NLog может одновременно поддерживать многобайтовые и широкие строки, это увеличивает гибкость использования, но ценой потери производительности из-за внутреннего перекодирования (если вы стремитесь к производительности, рекомендуется по возможности использовать широкие строки).

Обновления

  1. 2018-08-03 — обновление example.
  2. 2018-08-03 — предоставление динамической библиотеки, проектов статических библиотек vs2010 и vs2005.
  3. 2018-08-11 — оптимизация структуры организации, оптимизация производительности, исправление факторов нестабильности в статической библиотеке.
  4. 2018-08-11 — добавление многопоточности и нескольких экземпляров в example.
  5. 2019-11-12 — добавлена функция автоматического разделения файлов при превышении ограничения на размер вывода журнала.
  6. 2019-11-12 — добавлена функция автоматического удаления старых файлов при превышении лимита на количество файлов журнала.
  7. 2020-03-13 — адаптация к среде x64 и оптимизация части кода.

Ожидаемые будущие функции

  1. Оптимизация производительности — достижение скорости вывода 80 000 строк в секунду без ущерба для функциональности.
  2. Предоставление способа динамического изменения конфигурации печати — настройка стиля ведения журнала, каталога вывода, имени файла, уровня журнала и других параметров через файл конфигурации.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

NLog предназначен для предоставления высокогибкого, простого в использовании и быстродействующего модуля логирования на C++. Развернуть Свернуть
BSD-2-Clause
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/kwok-jh-nlog.git
git@api.gitlife.ru:oschina-mirror/kwok-jh-nlog.git
oschina-mirror
kwok-jh-nlog
kwok-jh-nlog
master