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

网站三大标签修改注意事项2345浏览器电脑版首页

网站三大标签修改注意事项,2345浏览器电脑版首页,百度推广运营工作是什么,个体户广告公司名字目录 一.日志 二.实现任意个数元素求和 三.编写一个日志函数 1.设置日志等级 2.设置日志时间 3.设置日志的打印格式 4.将日志的内容输出到文件 一.日志 日志等级#xff0c;日志时间#xff0c;日志内容#xff0c;文件的名称和行号 日志等级…目录 一.日志 二.实现任意个数元素求和         三.编写一个日志函数 1.设置日志等级         2.设置日志时间 3.设置日志的打印格式 4.将日志的内容输出到文件              一.日志 日志等级日志时间日志内容文件的名称和行号 日志等级 Info常规消息 Warning报警消息 Error错误可能需要立即处理 Fatal致命的 Debug调试 二.实现任意个数元素求和         使用可变参数要使用若干个宏定义这些宏定义在         //使用可变参数时一定要有一个具体的参数 int Sum(int n, ...) {//用来提取可变参数的一个个参数其实本质上就是一个char*类型的指针变量va_list s;//只向可变参数的首地址内部封装了s n 1;va_start(s, n);//实现求和int sum 0;while(n){//根据类型提取参数va_arg(s, int);n--;}//s NULL;va_end(s);return sum; } 主函数调用       此时我们传入的可变参数都是相同的类型的如果传入不同的类型的话就要像printf一样做获取的字符串处理。  三.编写一个日志函数 1.设置日志等级         #define Info 0 #define DeBug 1 #define Warning 2 #define Error 3 #define Fatal 4//实现日志函数 void logmessage(int level, char* formatr, ...) {}2.设置日志时间 a.Linux中获取时间戳的函数                      b.Linux中转换时间戳的函数 会将得到的时间戳转换为以下形式               因为年和月都是从0开始计的所以在打印的时候需要加1900和1。 void logmessage(int level, char* formatr, ...) {//获取时间戳time_t t 0;time(t);//转换时间戳struct tm* ctime NULL;ctime localtime(t);//打印获取到的时间printf(%d-%d-%d %d:%d:%d\n, ctime-tm_year 1900, ctime-tm_mon 1, ctime-tm_mday, ctime-tm_hour, ctime-tm_min, ctime-tm_sec);} 3.设置日志的打印格式 默认部分 自定义部分 #define Info 0 #define DeBug 1 #define Warning 2 #define Error 3 #define Fatal 4 #define Log_buffer_SIZE 1024string levelToString(int level) {switch(level){case Info : return Info ;case DeBug : return DeBug ;case Warning : return Warning ;case Error : return Error ;case Fatal : return Fatal ;default:return None;} }//实现日志函数 void logmessage(int level, char* format, ...) {//获取日志的等级string level_str;level_str levelToString(level);//获取时间戳time_t t 0;time(t);//转换时间戳struct tm* ctime NULL;ctime localtime(t);// //打印获取到的时间// printf(%d-%d-%d %d:%d:%d\n// , ctime-tm_year 1900, ctime-tm_mon 1, ctime-tm_mday// , ctime-tm_hour, ctime-tm_min, ctime-tm_sec);//整合日志的默认部分char leftbuffer[Log_buffer_SIZE];snprintf(leftbuffer, sizeof(leftbuffer), [%s][%d-%d-%d %d:%d:%d] : ,level_str.c_str(), ctime-tm_year 1900, ctime-tm_mon 1, ctime-tm_mday, ctime-tm_hour, ctime-tm_min, ctime-tm_sec);//整合自定义部分va_list s;va_start(s, format);char rightbuffer[Log_buffer_SIZE];vsnprintf(rightbuffer, sizeof(rightbuffer), format, s);va_end(s);//整合默认部分和自定义部分char logtxt[Log_buffer_SIZE * 2];snprintf(logtxt, sizeof(logtxt), %s%s\n, leftbuffer, rightbuffer);printf(%s, logtxt); } 4.将日志的内容输出到文件              #include time.h #include string #include stdio.h #include stdarg.h #include iostream #include cstdio #include cerrno #include cstring #include fcntl.h #include unistd.h #include unistd.h #include sys/stat.h #include sys/types.husing namespace std;#define Info 0 #define DeBug 1 #define Warning 2 #define Error 3 #define Fatal 4 #define Log_buffer_SIZE 1024string levelToString(int level) {switch (level){case Info:return Info;case DeBug:return DeBug;case Warning:return Warning;case Error:return Error;case Fatal:return Fatal;default:return None;} }#define Screen 1 #define Onefile 2 #define Classfile 3#define LogFile log.txt// 实现日志函数 class Log { public:Log(){printMethod Screen;path ./Log/;}void Enable(int method){printMethod method;}void printLog(int level, const string logtxt){switch (printMethod){case Screen:cout logtxt.c_str() endl;break;case Onefile:printOneFile(LogFile, logtxt);break;case Classfile:printClassFile(level, logtxt);break;default:break;}}void printOneFile(const string logname, const string logtxt){string _logname path;_logname logname;int fd open(_logname.c_str(), O_WRONLY | O_CREAT | O_APPEND, 0666); // log.txtif (fd 0)return;write(fd, logtxt.c_str(), logtxt.size());close(fd);}void printClassFile(int level, const string logtxt){string filename LogFile;filename .;filename levelToString(level); // log.txt.Debug/Warning/FatalprintOneFile(filename, logtxt);}~Log(){}//处理日志等级string levelToString(int level){switch (level){case Info:return Info;case DeBug:return DeBug;case Warning:return Warning;case Error:return Error;case Fatal:return Fatal;default:return None;}}//实现日志方法void operator()(int level, char *format, ...){// 获取日志的等级string level_str;level_str levelToString(level);// 获取时间戳time_t t 0;time(t);// 转换时间戳struct tm *ctime NULL;ctime localtime(t);// 整合日志的默认部分char leftbuffer[Log_buffer_SIZE];snprintf(leftbuffer, sizeof(leftbuffer), [%s][%d-%d-%d %d:%d:%d] : , level_str.c_str(), ctime-tm_year 1900, ctime-tm_mon 1, ctime-tm_mday, ctime-tm_hour, ctime-tm_min, ctime-tm_sec);// 整合自定义部分va_list s;va_start(s, format);char rightbuffer[Log_buffer_SIZE];vsnprintf(rightbuffer, sizeof(rightbuffer), format, s);va_end(s);// 整合默认部分和自定义部分char logtxt[Log_buffer_SIZE * 2];snprintf(logtxt, sizeof(logtxt), %s%s\n, leftbuffer, rightbuffer);// printf(%s, logtxt);printLog(level, logtxt);}private:int printMethod;string path; };
http://www.zqtcl.cn/news/28859/

相关文章:

  • 网站如何能让百度收录网站建设柒首先金手指8
  • 网站备案信息管理wordpress 影视源码
  • wordpress 正计时seo的基本步骤包括哪些
  • 酒店加盟什么网站建设做直播网站有市场吗
  • 简述php网站开发流程图美容网站建设
  • 云南建设厅网站安全员报名入口网站设计行业背景
  • 东莞网站制作品牌祥奔科技网页设计作品及源码
  • 网站建设需求信息网页鉴赏
  • 洪山网站建设公司系部网站开发计划
  • 榆林网站建设网站备案取消
  • 做网站哪个便宜无法解析服务器域名
  • 泰达建设集团网站wordpress从入门到精通pdf
  • 成都分销网站建设内蒙古建设厅网站删除
  • 什么软件网站好重庆网站建公司大全
  • 学做网站论坛会员怎么样厦门创意互动网站建设
  • 美食网网站建设目的租号网站建设
  • 怎样建外贸公司网站学校设计方案
  • 目前网站开发状况h5网页设计
  • 关于公示网站建设的计划书Wordpress 采集 gofair
  • 电商网站制作教程wordpress社区主题
  • 个人购买域名做企业网站最佳网页制作软件
  • 视频门户网站建设方案可以做积分的网站
  • 无锡做网站中企动力wordpress静态文件nginx配置
  • 做网站用哪个编程语言肥城房产网
  • 网站建设与管理总结心得固原网站制作
  • 漳州网站建设到博大建设网站需要分析什么
  • WordPress不关站备案插件windows优化大师要会员
  • 做缓网站上海浦东网站建设
  • 惠州网站制作计划百度地图在线查询
  • 云南省建设考试中心网站成都网站建设价格