免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1830 | 回复: 5
打印 上一主题 下一主题

关于class slog [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-07 19:05 |只看该作者 |倒序浏览
C++中怎样用"class slog"写系统日志:

例如原来
syslog(LOG_ALERT, "superman!\n");
syslog(LOG_ERROR, "chinese!\n");
用slog类如何修改阿


谢谢  

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-12-07 23:46 |只看该作者
slog是一个什么东东?

论坛徽章:
0
3 [报告]
发表于 2005-12-08 00:55 |只看该作者
是指Common C++里面的Slog类吧?

commoncpp是个挺不错的库.

如果是的话,它本身是从streambuf和ostream继承而来的,就像普通流一样使用流输出运算符就可以了<<.
在CommonC++库里面定义了一个Slog类型的全局对象.
这个类本身对operator()进行了重载,返回一个Slog类型的引用.


  1. include <cc++/slog.h>
  2. #include <iostream>
  3. #include <cstdio>

  4. #ifdef  CCXX_NAMESPACES
  5. using namespace std;
  6. using namespace ost;
  7. #endif


  8. int main(int argc, char* argv[])
  9. {
  10.    slog("argv[0]", Slog::classDefault, Slog::levelInfo);
  11.    slog << "slog begin start." << endl;
  12.    //关闭向控制台的输出,只写到日志文件
  13.    slog.clogEnable(false);
  14.    slog << "This is only just an prompt information." << endl; //流输出运算符
  15.    //打开向控制台的输出,同时写到日志文件
  16.    slog.clogEnable(true);
  17.    slog << "It should can see this information on konsole screen." << endl;

  18.    return 0;
  19. }
复制代码


然后可以tail /var/log/messages,查看一下你的信息.

syslog(LOG_ALERT, "superman!\n");
syslog(LOG_ERROR, "chinese!\n");

就是

  1. slog(Slog::levelAlert) << "superman!\n";
  2. slog(Slog::levelError) << "chinese\n";

  3. 或者
  4. slog.alert() << "superman!\n"; //调整级别并返回实例,然后调用operator<<输出
  5. slog.error() << "chinese\n";
复制代码

论坛徽章:
0
4 [报告]
发表于 2005-12-08 09:45 |只看该作者

回复 3楼 renstone921 的帖子

是啊   确实很好啊  
可就是忒难用啊 /
谢谢赐教  ,我在琢磨琢磨   


==============================
我是新手,我怕萨?

论坛徽章:
0
5 [报告]
发表于 2005-12-09 13:22 |只看该作者

回复 3楼 renstone921 的帖子

仁兄啊 ,关于syslog 和 slog我写了两个小程序:

#include <stdio.h>
#include <syslog.h>
#include <stdarg.h>

int main()
{
     syslog(LOG_ALERT," I am a chinese!\n");

     closeslog();
}

=========================================
这个可以写入系统日志,可用上边那个程序就不行了。
还望赐教萨?

论坛徽章:
0
6 [报告]
发表于 2005-12-09 19:21 |只看该作者
肯定行的,我自己就是那么用的.

如果不行,请说明是编译不行还是执行不行,你的操作系统是什么,使用的什么编译器,库都编译好了吗?路径是否正确配置?什么信息都不提供,让人怎么回答。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP