当前位置: 首页 > 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.pierceye.com/news/28859/

相关文章:

  • 南宁网站建设公找生意项目
  • 网站验证码怎么做的银川网站建设银川
  • 做司考题的网站网站建站流程有哪些
  • 网站建设实践鉴定建立企业网站流程
  • 装修公司做宣传在哪个网站网站做预览文档
  • 赣州兼职网站建设十八款免费的软件下载
  • 杭州哪家公司做网站比较好南京网站优化推广
  • 做的好的手机网站有哪些内容网站有收录就会排名吗
  • 宝坻区建设路小学网站上海网站制作网站
  • 学校网站模板 中文电商网站开发需求
  • 烟台公司网站开发新建站点
  • 医院网站建设公司价格app推广团队
  • 网站设计师培训织梦安装教程
  • 需要网站开发的吗网络广告推广员
  • 做图片网站赚不赚钱wordpress关于我们
  • 怎么做网站劳务中介网站响应时间长
  • 江宁招网站建设58tv电视盒子企业网站模板
  • 我要做一个网站 需要营业范围吗电商课程培训
  • 自适应网站建设选哪家wordpress 获取链接
  • 设计logo网站免费奇米建设厅网站账户名忘了怎么查
  • 白云区网站开发公司电话公司怎么推广网络营销
  • 行业门户网站方案公司 网站建设
  • 网站集约化建设工作总结网络推广有什么好的方法
  • 企业网站模板湖南岚鸿阳东区建设局网站
  • iis7.5 没有默认网站有哪些设计好看的企业官网
  • 坂田做网站建设好的网络公司抖音同城推广
  • 北京做网站建设的公司哪家好做网站cookie传值
  • 网站设计基础天元建设集团有限公司黄岛分公司
  • 昆明网络营销网站手机建网站教程
  • 企业网络推广方法seo网站推广优化就找微源优化