首页 > 其他分享 >模仿glog风格的log实现

模仿glog风格的log实现

时间:2024-09-20 15:35:52浏览次数:7  
标签:LOG glog lv 风格 include 模仿 log

需求

实现一个类似glog风格支持<<链式调用的log库。

代码

利用的析构函数的特性,每次LOG结束后会自动调用,完成消息拼接。

#include <string>
#include <iostream>

class LOG
{
public:
    LOG(int lv)
    {
        level = lv;
        body = "";
    }
    template<typename type>
    LOG& operator<<(type msg)
    {
        body += std::to_string(msg);
        return *this;
    }
    LOG& operator<<(const char* msg)
    {
        body += msg;
        return *this;
    }
    ~LOG()
    {
        std::cout << "[" << level << "] " \
            << body << std::endl;
    }
private:
    int level = 0;
    std::string body;
};

int main()
{
    // for simplicity, 1 2 3 for INFO WARN ERROR
    LOG(1) << "test" << 111;
    LOG(2) <<"string: " << float(41*8 + 59%8)/640*1900;
    return 0;
}

效果

[1] test111
[2] string: 982.656189

标签:LOG,glog,lv,风格,include,模仿,log
From: https://www.cnblogs.com/azureology/p/18422604

相关文章

  • centos(linux): logrotate常用功能
    一,测试配置是否正确?-d:打印debug信息-v:显示详细的输出信息[[email protected]]#logrotate-d/etc/logrotate.d/secure-v二,配置/var/log/secure按天分割/etc/logrotate.d/secure/var/log/secure{missingokdailyrotate90notifemptydatee......
  • 使用MyFlash的mysqlbinlog工具查看MySQL binlog的原始SQL语句
    要使用myflash的mysqlbinlog工具查看MySQLbinlog的原始SQL语句,你可以按照以下步骤操作:确保你的MySQL服务器已经开启了binlog,并且binlog格式设置为ROW。这可以通过设置binlog_format=row和binlog_row_image=full在MySQL配置文件中实现。安装myflash工具。你可以从GitH......
  • SVN的安装和使用手册 https://blog.csdn.net/sinat_37812785/article/det
    下载`TortoiseSVN官网下载址:https://www.visualsvn.com/visualsvn/download/tortoisesvn/ 下载完成后是这样的安装TortoiseSVN:  此处的安装地址建议不动,当然你也可以选择你要安装的地址    安装完成后在桌面点击右键查看 如果有标记的两个文件说明已经安装......
  • centos(linux): logrotate是怎么触发日志轮询的?
    一,通过查看crontab中的配置,没有logroate1,查看crontab[[email protected]]#more/etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root#Fordetailsseeman4crontabs#Exampleofjobdefinition:#.----------------minute(0-59)#......
  • 第139期 大规模食品logo检测数据集
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。FoodLogoDet-1500:食品徽标检测的大规模数据集探索在数字化时代的浪潮下,多媒体信息......
  • dialog 编程
      #!/bin/bash#usingdialogtocreateamenutemp=`mktemp-ttest.XXXXXX`temp2=`mktemp-ttest2.XXXXXX`functiondiskspace{ df-k>$temp dialog--textbox$temp2060}functionwhoseon{ who>$temp dialog--textbox$temp2050}fun......
  • 【Java基础】ThreadLocal<LoginUser>:存储登录用户信息
    ......
  • 【计算机专业最新Java必过毕设选题推荐2025】基于springboot个人在线博客blog网站设计
    作品简介 Hi,各位同学好呀!今天向大家分享一个最新完成的高质量毕业设计项目作品基于springboot的XXX管理系统项目评分(最低0分,满分5分)难度系数:3分工作量:5分创新点:3分界面美化:5分使用技术前端:html/js/css后端:springboot数据库:MySql服务器:apache-tomcat......
  • [ERROR] Error log throttle: 'Can't create thread to handle new connection' erro
    日常巡查中发现mysql日志中有大量报错:2024-09-1202:51:0219177[ERROR]Errorlogthrottle:3'Can'tcreatethreadtohandlenewconnection'error(s)suppressed2024-09-1202:51:0219177[ERROR]Can'tcreatethreadtohandlerequest(errno=......
  • Log4j2—漏洞分析(CVE-2021-44228)
    目录Log4j2漏洞原理漏洞根因调用链源码分析调用链总结漏洞复现dnsrmiLog4j2漏洞原理前排提醒:本篇文章基于我另外一篇总结的JNDI注入后写的,建议先看该文章进行简单了解JNDI注入:https://blog.csdn.net/weixin_60521036/article/details/142322372提前小结说明:Log4j2(CVE-2021-4......