ACE_DEBUG介绍及日志输出
转载于:http://blog.csdn.net/zzjxiaozi/article/details/6642925
ACE_DEBUG 常规的一些输出消息
ACE_ERROR 会提供程序出错的一些低级消息
2个宏的用法上是一致的
ACE_DEBUG(错误级别,"格式串",变量1...变量N)
其中部分错误级别系统定义如下:
LM_SHUTDOWN = 01,系统死机级别
LM_TRACE = 02,跟踪级别
LM_DEBUG = 04,DEBUG级别
LM_INFO = 010,常规信息级别
LM_NOTICE = 020,注意级别
LM_WARNING = 040,警告级别
LM_STARTUP = 0100,启动级别
LM_ERROR = 0200,错误级别
LM_CRITICAL = 0400,危急级别
LM_ALERT = 01000,可修复的警告级别
LM_EMERGENCY = 02000,全局警告级别
部分格式串使用如下:
跟c 中printf使用类似
%n-表当前程序名称
%t-表当前线程号
%p-表指针
%s-字符串
ACE通过全局单体实例 ACE_LOG_MSG 管理和控制输出,我们可以利用这个实例把输出重定向
到文件,也可以重定向到标志输出
其中还可以控制什么级别的消息可被输出,简单使用如下:
ACE_LOG_MSG->set_flags (ACE_Log_Msg::STDERR);
设置输出到标准错误输出
ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR);
关闭输出到标志错误输出
ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
ofstream myostream (filename, ios::out | ios::trunc);
ACE_LOG_MSG->msg_ostream (&myostream);
设置输出到文件
u_long priority_mask =ACE_LOG_MSG->priority_mask (ACE_Log_Msg::PROCESS);
ACE_SET_BITS (priority_mask,LM_DEBUG |LM_INFO);
设置只记录LM_DEBUG 或者LM_INFO级别的消息
ACE_CLR_BITS (priority_mask,LM_DEBUG | LM_INFO);
清除设置条件
ACE_LOG_MSG还有一个非常有意思的功能,能以16进制方式输出内存中的块 ,简单使用如下:
ACE_LOG_MSG->log_hexdump (LM_DEBUG,
(char *) array,
sizeof array);
下面附上一个使用例子,例子来源于ACE包中的例子程序
#include "ace/OS_main.h"
#include "ace/streams.h"
#include "ace/Log_Msg.h"
int
ACE_TMAIN (int, ACE_TCHAR *[])
{
// 这个消息将输出到STDERR
ACE_DEBUG ((LM_DEBUG,
"first message\n"));
ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR);
// 这个消息将不被输出,因为标志位清除了
ACE_DEBUG ((LM_DEBUG,
"second message\n"));
ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
//这个消息将不被输出,因为流的实体尚未定义
ACE_DEBUG ((LM_DEBUG,
"third message\n"));
//建立一个流实体,指向d:\output.log文件
const char *filename = "d:\\output.log";
ofstream myostream (filename, ios::out | ios::trunc);
if (myostream.bad ())
return 1;
// 设置输出到流
ACE_LOG_MSG->msg_ostream (&myostream);
//这个消息将输出到文件中
ACE_DEBUG ((LM_DEBUG,
"fourth message\n"));
ACE_LOG_MSG->set_flags (ACE_Log_Msg::STDERR);
// 这个消息将同时输出到文件和STDERR
ACE_DEBUG ((LM_DEBUG,
"fifth message\n"));
return 0;
}
ACE_DEBUG介绍及日志输出的更多相关文章
- .NET Core的日志[2]:将日志输出到控制台
对于一个控制台应用,比如采用控制台应用作为宿主的ASP.NET Core应用,我们可以将记录的日志直接输出到控制台上.针对控制台的Logger是一个类型为ConsoleLogger的对象,Consol ...
- Python日志输出——logging模块
Python日志输出——logging模块 标签: loggingpythonimportmodulelog4j 2012-03-06 00:18 31605人阅读 评论(8) 收藏 举报 分类: P ...
- AMQ学习笔记 - 19. 问题解决 - 控制Atomikos的日志输出
概述 在使用Atomikos为ActiveMQ提供JTA支持时,Atomikos在控制台打印了繁琐的日志.这里介绍如何控制Atomikos日志输出的粒度. 解决方案 基于以下三个事实: Atomiko ...
- log4j日志输出到web项目指定文件夹
感谢 eric2500 的这篇文章:http://www.cxyclub.cn/n/27860/ 摘要:尝试将log4j的文件日志输出到web工程制定目录,遇到了很多问题,最终在eric2500的指导 ...
- postgresql数据库配置csv格式的日志输出
postgresql数据库配置csv格风格日志输出 以下介绍postgresql数据库中关于csv格式日志(pg中一种比較具体的日志输出方式)的设置方法. 1.进入$PGDATA文件夹(pg的安装文件 ...
- 修改Python文件日志输出位置
Python logging模块介绍:http://blog.chinaunix.net/uid-26000296-id-4372063.html [root@fuel ~]# vi /var/lib ...
- Python之向日志输出中添加上下文信息
除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定信息,如:远程客户端的IP地址和用户名.这里我们 ...
- iOS项目之使用开关控制日志输出的功能
最近一直在做sdk的项目,用户提出了一个需求,需要屏蔽sdk内部的日志输出.由于sdk内部的日志是为了调试,如果屏蔽了肯定不方便,所以研究了一下日志输出开关的功能. 在这里介绍两种实现方案:一种方案是 ...
- springboot 学习之路 4(日志输出)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
随机推荐
- 使用InstallShield-Limited-Edition制作安装包
1.打开此网站,进行注册,获取序列码以及下载InstallShield-Limited-Edition 2.安装完成之后,打开VisualStudio,新建项目 3.填写基本应用信息 4.配置相关信息 ...
- jQuery官网plugins栏目下那些不错的插件
前言: 很久以前就关注过jQuery官网plugins栏目下那些全是英文的插件,本人的英文水平很菜,想要全部看懂确实是件不易之事. 好在大部分的案例中都有 view-homepage 或 Try a ...
- 技本功丨知否知否,Redux源码竟如此意味深长(下集)
上集回顾 Redux是如何使用的?首先再来回顾一下这个使用demo(谁让这段代码完整地展示了redux的使用) 如果有小伙伴对这段代码不是很理解的话,建议先去学习Redux的使用再来看这篇源码,这样更 ...
- rewrite or internal redirection cycle while processing nginx重定向报错
2018/05/07 15:03:42 [error] 762#0: *3 rewrite or internal redirection cycle while processing "/ ...
- 《剑指Offer》题五十一~题六十
五十一.数组中的逆序对 题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数.例如,在数组{7, 5, 6, 4}中,一共存 ...
- 视频播放截图及简要文字介绍——Thunder团队
视频播放截图及简要文字介绍 图一:团队Logo ——从此我们有了自己的标志 图二:扫描本地书籍 ——可阅读本地的喜爱书籍 图三:在本地添加自己喜爱的图书 ——将自己喜爱的书籍加入书架,方便阅读 图四: ...
- Alpha阶段中间产物——Thunder团队
Part One 版本控制 git地址:https://git.coding.net/lick468/iReader.git Part Two 软件功能说明书 相关链接:http://www.cnbl ...
- postmortem report of period M2
一.设想和目标 1.我们的软件主要要解决学长设计的学霸系统中视频及文档的浏览功能问题. 2.时间相对充裕.不过对于我们这些零基础的人来说还是比较困难. 3.我们团队中不同意见通常会进行进一步讨论,说出 ...
- 20145214实验二 Java面向对象程序设计
20145214实验二 Java面向对象程序设计 初步掌握单元测试和TDD 三种代码 伪代码 `百分制转五分制:` `如果成绩小于60,转成"不及格"` `如果成绩在60与70之间 ...
- Word Ladder Problem (DFS + BFS)
Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest t ...