使用std::ostream(nullptr)控制日志输出等级
日志需要按当前设置的级别来控制是否输出到文件或者控制台,这里做一个最简单示范:
随便设置日志级别:
// 切换输出的技巧
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)控制日志输出等级相关推荐
- C语言日志级别和作用,自己写的C语言通用日志框架,可以控制日志输出等级
/************************************c语言通用日志框架************************************ * * @author 南栀(ke ...
- log4j控制日志输出文件名称的两种方式
1. 第一种方式 在类对象中用如下方式定义logger变量 private static Logger logger = Logger.getLogger("lemmaXml"); ...
- android 控制日志输出,Android日志工具-SLog说明
作为一个码农,我希望有一天面朝大海,没有bug(想想,就算了),然鹅!!!现实是骨感的. 在东财有段时间了,闲暇之余,决定改造下项目中的日志库.这便是此篇文章的由来,下面 说说主角. 既然要做一个日志 ...
- Log4j日志输出详细
日志论 在应用程序中输出日志有有三个目的: (1 )监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作. (2 )跟踪代码运行进轨迹,作为日后审计的依据. (3 )担当集成 ...
- log4j2日志输出到控制台-Maven工程
log4j2简介: Apache Log4j 2 is an upgrade to Log4j that provides significant improvements over its pred ...
- 多个模块的log日志输出
今天研究了一下python标准库中的logging模块,在多个模块的情景下输出日志 import logging from logging_test2 import log_test# logging ...
- delphi的一款非常迷你+实用的Log日志输出单元
思路来自:Delphi开发系列(3):日志记录组件_老虾米-CSDN博客_delphi 日志组件 属于站在前人的肩膀上看世界.前作者也是从RealThinClient控件中剥离出日志输出单元,并添加日 ...
- FFMPEG 日志输出控制
原文:https://blog.csdn.net/tea1896/article/details/48310579 1. FFMPEG 编码速度很慢,发现其中打印很多.因为打印是一个执行比较慢的动作, ...
- Linux 日志输出控制
在嵌入式Linux设备中,系统资源比较有限,在产品开发时我们会打印很多的日志信息方便工程调试和问题定位.但是在产品发布的时候,为了节省系统资源,那些调试信息或是一些不总要的信息就不需要再记入到日志当中 ...
最新文章
- MAC中 jd-gui 下载java反编译的工具及安装
- android studio文件风格,Android Studio构建风格 – 如何拥有不同风格的相同源文件
- canvas之一:绘制直线
- Fedora20下安装编译环境
- python中不具备np_Python中np.random.multivariate_normal问题?
- TextureView
- 牛客网 【每日一题】5月26日题目精讲 [JSOI2007]建筑抢修
- Android下利用Bitmap切割图片
- 【STL学习】堆相关算法详解与C++编程实现(Heap)
- ThinkPHP单字母函数(快捷方法)使用总结
- 2021年网络工程师备考心得
- 传智播客 C/C++学习笔记 函数调用 模型
- 《Cisco VPP SFC》4、ODL SFC 安装
- Windows、Linux密码破解—John、Hydra、hashcat、Mimikatz等工具基本使用
- 软件工程师之路-软考(中级)1
- 渗透攻击MS08-067
- 3大能力升级,云效+钉钉,让研发协作更「敏捷」
- 【微信开发】基于微信公众号的早起签到程序
- ThinkPHP历史漏洞
- JVisualVM 中线程状态(运行/休眠/等待/驻留/监视)解析
热门文章
- 等价关系 偏序关系 全序关系
- Multi-exposure image fusion via deep perceptual enhancement 通过深度感知增强实现多曝光图像融合
- C语言山东春考技能模拟,1-2020年山东省春季高考技能考试信息技术类专业考试(样题)(2).pdf...
- python---locals()(全局变量)
- Diglog页创建bootstarp-switch按钮
- python获取cpu温度_获取树莓派的CPU和GPU温度(Python)
- win32下Qt5BLE蓝牙开发笔记
- 手机版python编辑器下载_描写手的优美句子
- Arcobjects for java:Arcgis二次开发入门,开发一个基本地图组件
- 一本通2061:【例1.2】梯形面积