资源简介
易用而又强大的C++跨平台日志库,可以输出日志到控制台窗口,文件,http服务器
代码片段和文件信息
#include “yaolog.h“
#include
#include
#include
#ifdef _YAO_LOG_WIN32_
#include
#include
#include
#include
#pragma comment(lib “Ws2_32.lib“)
#pragma comment(lib “shlwapi.lib“)
#pragma comment(lib “Rpcrt4.lib“)
#pragma warning(disable : 4996)
#else
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#endif
namespace YaoUtil {
// max size of ini file in bytes
const int MAX_INI_FILE_SIZE = 1024*32;
// default log buffer size in bytes
const size_t BUF_SIZE = 1024*4;
// max size of the queue for post
const size_t MAX_QUEUE_SIZE = 1000;
const int THREAD_CYCLE_SPAN_MILLISECOND = 2000;
const int THREAD_EXIT_TIMEOUT_MILLISECOND = 300;
char *g_pData = NULL;
char *g_pRealData = NULL;
bool g_bUseNewBuffer = false;
std::queue > g_textData;
std::queue > g_binData;
std::map g_files;
void ResetBuffer()
{
memset(g_pData 0 BUF_SIZE);
if (g_bUseNewBuffer)
{
delete [] g_pRealData;
g_bUseNewBuffer = false;
}
g_pRealData = NULL;
}
LOGOUT_FLAG ToFlag(const std::string& outFlag)
{
LOGOUT_FLAG flag_;
if (StrUtil::CompareNoCase(outFlag “file“)) flag_ = LOGOUT_FLAG_FILE;
else if (StrUtil::CompareNoCase(outFlag “stdout“)) flag_ = LOGOUT_FLAG_STDOUT;
else if (StrUtil::CompareNoCase(outFlag “remote“)) flag_ = LOGOUT_FLAG_REMOTE;
else flag_ = LOGOUT_FLAG_OUTPUTDEBUGSTRING;
return flag_;
}
void Queue2Vector(std::queue >& data_
std::vector > >& new_data)
{
std::string last_key;
std::vector new_value;
bool firstElement = true;
while (!data_.empty())
{
std::string& key_ = data_.front().first;
std::string& value_ = data_.front().second;
if (firstElement)
{
last_key = key_;
new_value.push_back(value_);
firstElement = false;
}
else
{
if (key_ != last_key)
{
new_data.push_back(make_pair(last_key new_value));
last_key = key_;
new_value.clear();
}
new_value.push_back(value_);
}
data_.pop();
}
if (!last_key.empty())
{
assert(new_value.size() > 0);
new_data.push_back(make_pair(last_key new_value));
}
}
TinyMutex::TinyMutex()
{
#ifdef _YAO_LOG_WIN32_
InitializeCriticalSection(&m_handle);
#else
pthread_mutex_init(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 374 2013-01-24 15:33 test_linux\logconfig.ini
文件 2097 2013-01-24 15:41 test_linux\main.cpp
文件 419 2013-01-24 15:35 test_windows\logconfig.ini
文件 2164 2013-01-24 15:40 test_windows\main.cpp
文件 53767 2013-01-24 15:40 yaolog.cpp
文件 20476 2013-01-24 15:43 yaolog.h
相关资源
- VC++写的功能非常强大的自定义列表控
- 操作系统 课程设计 C++ 读者写着问题
- 操作系统 课程设计 C++ 模拟文件系统
- c++ http
- c++ http并保存到本地
- C++ HTTP GET,POST的简单
- 数据压缩LZW编码c++程序
- 数据压缩 算术编码 c++ 程序
- C/C++/STL帮助手册 chm完整离线版
- ECC算法 C++实现 加解密
- 高斯投影正算C++源代码
- C++课程设计——学生学籍管理系统
- 清华大学C++内部题库 绝对好题
- Windows课程设计报告与源码
- VC++ MFC的餐厅点餐系统
- 用c++解决金刚坐飞机问题
- C++景区旅游信息管理系统
- 文件同步与异步读写
- hiredis的c++封装, 线程安全
- C++实现Apriori算法,频繁模式数据挖掘
- C++获取windows系统服务
- 矩阵算法相关代码
- 点扩散函数PSF
- 潮流计算 高斯赛德尔法
- RPP算法-RobustPlanarPose-C++
- PnP solvers C++版本,包括P3Pf,Epnp等
- 道格拉斯算法C++实现
- c++获取cpu使用率包含系统和单进程
- C++封装的一个跨平台的线程类和锁类
- C++信号量实现互斥爸爸女儿儿子苹果
评论
共有 条评论