当前位置: 首页 > news >正文

企业网站内容如何备案湖北省建设厅行政审批网站

企业网站内容如何备案,湖北省建设厅行政审批网站,出租网站空间,企业数字化建设公司功能#xff1a;将格式化完成后的日志消息字符串#xff0c;输出到指定的位置 扩展#xff1a;支持同时将日志落地到不同的位置 位置分类#xff1a; 1.标准输出 2.指定文件#xff08;时候进行日志分析#xff09; 3.滚动文件#xff08;文件按照时间/大小进行滚动…功能将格式化完成后的日志消息字符串输出到指定的位置 扩展支持同时将日志落地到不同的位置 位置分类 1.标准输出 2.指定文件时候进行日志分析 3.滚动文件文件按照时间/大小进行滚动切换 扩展支持落地方向的扩展 用户可以自己编写一个新的落地模块将日志进行其他方向的落地。 实现思想 1.抽象出一个落地基类 2.之后根据落地方向从基类派生出不同落地方向的子类 3.使用工厂模式进行创建与表示分离 标准输出 class StdoutSink :public LogSink{public:void log(const char* data,size_t len)override{std::cout.write(data,len);}}; 输入到指定文件 class FileSink :public LogSink{public://传入文件路径并且打开文件FileSink(const std::string pathname):_pathname(pathname){//创建日志文件所在的目录util::File::createDirectory(util::File::path(pathname));//创建并打开日志文件_ofs.open(_pathname,std::ios::binary|std::ios::app);assert(_ofs.is_open());//判断文件是否打开}//将日志消息输入到文件里面void log(const char* data,size_t len)override{_ofs.write(data,len);assert(_ofs.good());}private:std::string _pathname;std::ofstream _ofs;}; 以大小进行滚动 class RollBySizeSink :public LogSink{public://传入文件路径并且打开文件RollBySizeSink(const std::string basename,size_t max_size):_basename(basename),_max_fsize(max_size),_cur_fsize(0){std::string pathname createNewFile();//创建日志文件所在的目录util::File::createDirectory(util::File::path(pathname));//创建并打开日志文件_ofs.open(pathname,std::ios::binary|std::ios::app);assert(_ofs.is_open());//判断文件是否打开}//写入前判断文件大小超过了最大大小就要切换文件void log(const char* data,size_t len)override{if(_cur_fsize _max_fsize){std::string pathname createNewFile();_ofs.close();//关闭原来已经打开的文件。_ofs.open(pathname,std::ios::binary|std::ios::app);assert(_ofs.is_open());_cur_fsize 0;}_ofs.write(data,len);assert(_ofs.good());_cur_fsize len;}private:std::string createNewFile(){//获取系统时间以时间来构造文件扩展名time_t t util::Date::now();struct tm lt;localtime_r(t,lt);//将时间戳转换为有年月日的结构std::stringstream filename;filename _basename;filename lt.tm_year1900;filename lt.tm_mon1;filename lt.tm_mday;filename lt.tm_hour;filename lt.tm_min;filename lt.tm_sec;filename -;filename _name_count;filename .log;return filename.str();}//进行大小判断超过指定大小就要切换新文件private://基础文件名扩展文件名时间生成组成一个实际的当前输出文件名size_t _name_count0;std::string _basename;std::ofstream _ofs;size_t _max_fsize;//记录最大大小当前文件超过了这个大小就要切换文件size_t _cur_fsize;//记录当前文件已经写入的大小}; 以时间进行滚动 enum class TimeGap{GAP_SECOND,GAP_MIUTE,GAP_HOUR,GAP_DAY, };class RollByTimeSink :public bitlog::LogSink{public://传入文件路径并且打开文件RollByTimeSink(const std::string basename,TimeGap gap_type):_basename(basename){switch(gap_type){case TimeGap::GAP_SECOND:_gap_size 1;break;case TimeGap::GAP_MIUTE:_gap_size 60;break;case TimeGap::GAP_HOUR:_gap_size 3600;break;case TimeGap::GAP_DAY:_gap_size 3600*24;break;}_cur_gap _gap_size 1 ? bitlog::util::Date::now() : bitlog::util::Date::now() % _gap_size;std::string filename createNewFile();//创建日志文件所在的目录bitlog::util::File::createDirectory(bitlog::util::File::path(filename));//创建并打开日志文件_ofs.open(filename,std::ios::binary|std::ios::app);assert(_ofs.is_open());//判断文件是否打开}//写入前判断文件大小超过了最大大小就要切换文件void log(const char* data,size_t len)override{time_t cur bitlog::util::Date::now();if((cur%_gap_size)!_cur_gap){_ofs.close();std::string filename createNewFile();_ofs.open(filename,std::ios::binary|std::ios::app);assert(_ofs.is_open());}_ofs.write(data,len);assert(_ofs.good());}private:std::string createNewFile(){//获取系统时间以时间来构造文件扩展名time_t t bitlog::util::Date::now();struct tm lt;localtime_r(t,lt);//将时间戳转换为有年月日的结构std::stringstream filename;filename _basename;filename lt.tm_year1900;filename lt.tm_mon1;filename lt.tm_mday;filename lt.tm_hour;filename lt.tm_min;filename lt.tm_sec;filename .log;return filename.str();}//进行大小判断超过指定大小就要切换新文件private:std::string _basename;std::ofstream _ofs;size_t _cur_gap;//当前是第几个时间段size_t _gap_size;//时间段的大小}; 使用简易工厂模式来创建 class SinkFactory{public:templatetypename SinkType,typename ...Argsstatic LogSink::ptr create(Args ...args){return std::make_sharedSinkType(std::forwardArgs(args)...);}};
http://www.dnsts.com.cn/news/23213.html

相关文章:

  • python做网站实战网站做3年3年包括什么软件吗
  • 电商网站怎么做湖南网站推广优化
  • 免费设计海报的网站哈尔滨做网站的
  • 免费网站建设制作公司网站设计案例
  • 建设项目环境影响登记网站天津dedecms手机网站
  • 高端网站建设专业网站建设的工具
  • 淘宝返利网站怎么做的河南网站建设优化推广
  • c#购物网站开发流程淘宝联盟怎么推广赚钱
  • 名表网站wordpress上传到哪里
  • 蓬莱网站设计沈阳养老保险网站
  • 天津集体建设用地出售 网站盐城网站制作网络推广
  • 网站的建设需要多少钱工商局注册公司流程和费用
  • 网站密码如何找回怎样做网站卖自己的产品
  • 专业长春网站建设哪家好黑龙江省新闻
  • 展示类网站建设做自己的网站要多少钱
  • wordpress小说站群芜湖网站公司
  • 北京智能网站建设企业怎样做网站广告
  • 做企业展示型网站awada wordpress
  • 自己做qq代刷网站要钱吗万物识别扫一扫
  • 网站建设合同首付多少钱公司网页模板免费下载
  • 宁夏建设管理局网站室内设计培训学校哪个好
  • 玉林城乡住房建设厅网站龙华网络推广方式
  • 做直播网站要什么证吗godaddy主机到网站
  • 网站上传不了图片不显示不出来吗企业vi设计是什么意思
  • 聊城高端网站设计建设诚信经营网站的建设
  • 杭州好的公司网站设计牡丹江整站优化
  • 常见的电子商务网站推广方式网站设计中遇到的问题
  • html5手机商城网站模板和城乡建设部网站
  • 网站后台管理系统下载企业网站建设代理加盟
  • 投稿的网站WordPress免费主题商城