日志需要按当前设置的级别来控制是否输出到文件或者控制台,这里做一个最简单示范:

随便设置日志级别:

// 切换输出的技巧
enum LogLevel
{LOGLEVEL_TRACE = 0,LOGLEVEL_DEBUG,LOGLEVEL_DETAIL,LOGLEVEL_INFO,LOGLEVEL_WARN,LOGLEVEL_ERROR,LOGLEVEL_FATAL,LOGLEVEL_OFF,
};

精心定义一个空的输出:

class nullstream : public std::ostream {
public:nullstream() : std::ostream(nullptr) {}  // results in rdbuf==0 and badbit==true
};

随意添加一些定义和宏:

static nullstream dummyStream;
static int level = LOGLEVEL_INFO;
#define EV_LOG(LEVEL) ((LEVEL < level) ? dummyStream : std::cout) << "file: " << __FILE__ << ", 行:"  << __LINE__ <<  ", 函数:" <<__FUNCTION__ << ",内容:"
#define EV_INFO  EV_LOG(LOGLEVEL_INFO)

歌词大意是:如果当前的输出级别小于阈值,就输出到空流,否则输出到默认的输出,并加添加文件,行,函数信息,

使用方法:

    string *str = new string[2];int n = sizeof(string *);int t = sizeof(str);int m = sizeof(char);//std::cout << n << endl;//EV_INFO << "sizeof(string *)" << n << endl;

使用std::ostream(nullptr)控制日志输出等级相关推荐

  1. C语言日志级别和作用,自己写的C语言通用日志框架,可以控制日志输出等级

    /************************************c语言通用日志框架************************************ * * @author 南栀(ke ...

  2. log4j控制日志输出文件名称的两种方式

    1. 第一种方式 在类对象中用如下方式定义logger变量 private static Logger logger = Logger.getLogger("lemmaXml"); ...

  3. android 控制日志输出,Android日志工具-SLog说明

    作为一个码农,我希望有一天面朝大海,没有bug(想想,就算了),然鹅!!!现实是骨感的. 在东财有段时间了,闲暇之余,决定改造下项目中的日志库.这便是此篇文章的由来,下面 说说主角. 既然要做一个日志 ...

  4. Log4j日志输出详细

    日志论 在应用程序中输出日志有有三个目的: (1 )监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作. (2 )跟踪代码运行进轨迹,作为日后审计的依据. (3 )担当集成 ...

  5. log4j2日志输出到控制台-Maven工程

    log4j2简介: Apache Log4j 2 is an upgrade to Log4j that provides significant improvements over its pred ...

  6. 多个模块的log日志输出

    今天研究了一下python标准库中的logging模块,在多个模块的情景下输出日志 import logging from logging_test2 import log_test# logging ...

  7. delphi的一款非常迷你+实用的Log日志输出单元

    思路来自:Delphi开发系列(3):日志记录组件_老虾米-CSDN博客_delphi 日志组件 属于站在前人的肩膀上看世界.前作者也是从RealThinClient控件中剥离出日志输出单元,并添加日 ...

  8. FFMPEG 日志输出控制

    原文:https://blog.csdn.net/tea1896/article/details/48310579 1. FFMPEG 编码速度很慢,发现其中打印很多.因为打印是一个执行比较慢的动作, ...

  9. Linux 日志输出控制

    在嵌入式Linux设备中,系统资源比较有限,在产品开发时我们会打印很多的日志信息方便工程调试和问题定位.但是在产品发布的时候,为了节省系统资源,那些调试信息或是一些不总要的信息就不需要再记入到日志当中 ...

最新文章

  1. MAC中 jd-gui 下载java反编译的工具及安装
  2. android studio文件风格,Android Studio构建风格 – 如何拥有不同风格的相同源文件
  3. canvas之一:绘制直线
  4. Fedora20下安装编译环境
  5. python中不具备np_Python中np.random.multivariate_normal问题?
  6. TextureView
  7. 牛客网 【每日一题】5月26日题目精讲 [JSOI2007]建筑抢修
  8. Android下利用Bitmap切割图片
  9. 【STL学习】堆相关算法详解与C++编程实现(Heap)
  10. ThinkPHP单字母函数(快捷方法)使用总结
  11. 2021年网络工程师备考心得
  12. 传智播客 C/C++学习笔记 函数调用 模型
  13. 《Cisco VPP SFC》4、ODL SFC 安装
  14. Windows、Linux密码破解—John、Hydra、hashcat、Mimikatz等工具基本使用
  15. 软件工程师之路-软考(中级)1
  16. 渗透攻击MS08-067
  17. 3大能力升级,云效+钉钉,让研发协作更「敏捷」
  18. 【微信开发】基于微信公众号的早起签到程序
  19. ThinkPHP历史漏洞
  20. JVisualVM 中线程状态(运行/休眠/等待/驻留/监视)解析

热门文章

  1. 等价关系 偏序关系 全序关系
  2. Multi-exposure image fusion via deep perceptual enhancement 通过深度感知增强实现多曝光图像融合
  3. C语言山东春考技能模拟,1-2020年山东省春季高考技能考试信息技术类专业考试(样题)(2).pdf...
  4. python---locals()(全局变量)
  5. Diglog页创建bootstarp-switch按钮
  6. python获取cpu温度_获取树莓派的CPU和GPU温度(Python)
  7. win32下Qt5BLE蓝牙开发笔记
  8. 手机版python编辑器下载_描写手的优美句子
  9. Arcobjects for java:Arcgis二次开发入门,开发一个基本地图组件
  10. 一本通2061:【例1.2】梯形面积