nlog-简单易用的C++日志,线程安全、异步、高性能
2018-03-18 21:52
351 查看
两年前发过一个自己实现的C++异步日志, 由于当时水平太菜,做的那是相当的丑陋 ,有朋友不嫌弃 问我有没有后续的版本,最近借着项目需要,翻出来重新实现了一下。
该日志主要围绕几个主题:
1.简单易用 兼容 printf、 std::cout两种方式
2.功能灵活
3.小巧-500行左右
4.多线程安全
5.性能每秒至少10万+
6.完美兼容 多字节(ANSI)、宽字节(UNICODE)
7.同时打印多日志,互不干扰
只支持Windows
传送门:https://download.csdn.net/download/cstringw/10294191
git仓库:https://gitee.com/skygarth/nlog
#使用简单
#灵活的自定义配置
#多线程并发性能:
该日志主要围绕几个主题:
1.简单易用 兼容 printf、 std::cout两种方式
2.功能灵活
3.小巧-500行左右
4.多线程安全
5.性能每秒至少10万+
6.完美兼容 多字节(ANSI)、宽字节(UNICODE)
7.同时打印多日志,互不干扰
只支持Windows
传送门:https://download.csdn.net/download/cstringw/10294191
git仓库:https://gitee.com/skygarth/nlog
#使用简单
#include "nlog/nlog.h" int main() { LOG_APP("hello world"); LOG_ERR() << "[中文测试]"; LOG_WAR("my name is %s, I am ", "nlog") << 6 << " years old!"; /*释放所有资源*/ nlog::CLog::ReleaseAll(); return 0; } //输出 [03-18 21:29:02][APP][2AAC ]: hello world [03-18 21:29:02][ERR][2AAC ]: [中文测试] [03-18 21:29:02][WAR][2AAC ]: my name is nlog, I am 6 years old!
#灵活的自定义配置
#include "nlog/nlog.h" int main() { nlog::Config logCfg; /*日志前缀 如:[log-test-01.cpp: 32 ][BD4 ]: */ logCfg.prefixion = _T("[{file}:{line}][{id}]: "); /*日期格式*/ logCfg.dateFormat = _T("%m%d"); /*日志目录 默认:模块当前目录/log*/ logCfg.logDir; /*文件名格式 {time} {id}将被转换为时间与线程id*/ logCfg.fileName = _T("日志{time}.log"); /*设置配置*/ nlog::CLog::Instance().SetConfig(logCfg); /*设置日志等级,大于当前等级的日志将不被打印*/ nlog::CLog::Instance().SetLevel(nlog::LV_WAR); LOG_APP() << _T("[中文测试]"); LOG_WAR("my name is %s, I am ", "nlog") << 6 << " years old!"; LOG_ERR("time is ") << nlog::time << " and thread id: " << nlog::id; /*释放所有资源*/ nlog::CLog::ReleaseAll(); return 0; } //输出 日志0318.log [log-test-01.cpp: 34 ][F40 ]: my name is nlog, I am 6 years old! [log-test-01.cpp: 35 ][F40 ]: time is 0318 and thread id: F40
#多线程并发性能:
相关文章推荐
- C++简单的打印日志接口
- C++ 简单的日志类
- seajs学习日志 简单尝试模板+数据合并、模块异步加载、非标准CMD模式定义define模块
- C++最简单的日志库
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- PHP扩展高性能日志系统SeasLog简单上手
- C++实现一个简单的异常日志记录类
- FFLIB C++ 异步&类型安全&printf风格的日志库
- 使用STL流(stream)来简化C++“线程安全”日志记录
- 一个基于Loki::SingletonHolder的Windows线程安全的C++日志类实现
- 一个简单的 C# 异步日志记录器
- 一个简单可用的C++日志类
- c++实现简单的日志功能
- 简单的C++加载jvm实现--简单的日志输出
- 一个简单好用的日志框架NLog
- 使用NLog实现一个简单的日志记录(包含源代码)
- C++ 高性能无锁日志系统
- C++ 高性能无锁日志系统
- C++ 高性能无锁日志系统
- 使用STL流(stream)来简化C++“线程安全”日志记录