# sylar
## 开发环境
Centos7
gcc 9.1
cmake
## 项目路径
bin -- 二进制
build -- 中间文件路径
cmake -- cmake函数文件夹
CMakeList.txt -- cmake的定义文件
lib -- 库的输出路径
Makefile
sylar -- 源代码路径
tests -- 测试代码路径
## 日志系统
1)
Log4J
Logger(定义日志类别)
|
|--------Formatter(日志格式)
|
Appender(日志格式)
## 协程库封装
## socket函数库
## http协议开发
## 分布协议
##推荐系统
sylar/log.h文章来源地址https://www.toymoban.com/news/detail-521351.html
#ifndef __SYLAR_LOG_H
#define __SYLAR_LOG_H
#include <string>
#include <stdint.h>
#include <memory>
namespace sylar{
//日志事件
class LogEvent{
public:
typedef std::shared_ptr<LogEvent> ptr;
LogEvent();
private:
const char* m_file = nullptr; //文件名
int32_t m_line = 0; //行号
uint32_t m_elapse = 0; //程序启动开始到现在的毫秒数
int32_t m_thread = 0; //线程 id
uint32_t m_fiberId = 0; //协程 id
uint64_t m_time; //时间戳
std::string m_content;
};
//日志级别
class LogLevel{
public:
enum Level{
DEBUG = 1,
INFO = 2,
WARN = 3,
ERROR = 4,
FATAL = 5
};
};
//日志格式器
class LogFormatter{
public:
typedef std::shared_ptr<LogFormatter> ptr;
std::string format(LogFormatter::ptr event);
private:
};
//日志输出地
class LogAppender{
public:
typedef std::shared_ptr<LogAppender> ptr;
virtual ~LogAppender(){}
void log(LogLevel::Level level,LogEvent::ptr event);
private:
LogLevel::Level m_level;
};
//日志器
class Logger{
public:
typedef std::shared_ptr<Logger> ptr;
Logger(const std::string& name = "root");
void log(LogLevel::Level level,LogEvent::ptr event);
private:
std::string m_name;
LogLevel::Level m_level;
LogAppender::ptr//未完待续
};
//输出到控制台Appender
class StdoutLogAppender:public LogAppender{
};
//定义输出到文件的Appender
class FileLogAppender:public LogAppender{
};
}
#endif
文章来源:https://www.toymoban.com/news/detail-521351.html
到了这里,关于C++服务器框架01_日志系统01的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!