Linux后台Daemon中打印debug message的方法
来源:互联网 发布:布尔人 知乎 编辑:程序博客网 时间:2024/06/07 05:33
Linux中启动的后台Daemon因为没有tty与其相连,所以printf()或fprintf(stdout, .......)都没有地方可以显示。那么要在后台daemon中输出些message有什么方法呢?
可以使用syslog()函数,syslogd将会把message打印到/var/log/messages中。方法很简单如下:
#include
void foo()
{
...........
openlog("foo", LOG_PID, LOG_USER);
syslog(LOG_INFO, "your-messages\n");
...........
}
运行foo后,打开/var/log/messages, 就可以看到:
March 20 00:22:10 localhost foo[12312]: your-messages
其中方括号中的12312是后台daemon的pid(进程号)。
在centOS 6.x上,syslogd变成了rsyslog,如果一定时间内输出的log太多,rsyslogd就会丢弃一些log,在/var/log/messages里会看到这样的记录:
imuxsock begins to drop messages from pid 19341 due to rate-limiting
遇到这种情况,只要在/etc/rsyslog.conf中将限制条件改大一点即可,如下:
/etc/rsyslog.conf:
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
# 增加下面两行
$SystemLogRateLimitInterval 2 #<- rsyslogd对log计数的时间单位为2秒
$SystemLogRateLimitBurst 500 #<- 计数时间单位里log数不超过500条
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability
可以使用syslog()函数,syslogd将会把message打印到/var/log/messages中。方法很简单如下:
#include
void foo()
{
}
运行foo后,打开/var/log/messages, 就可以看到:
其中方括号中的12312是后台daemon的pid(进程号)。
在centOS 6.x上,syslogd变成了rsyslog,如果一定时间内输出的log太多,rsyslogd就会丢弃一些log,在/var/log/messages里会看到这样的记录:
遇到这种情况,只要在/etc/rsyslog.conf中将限制条件改大一点即可,如下:
/etc/rsyslog.conf:
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
# 增加下面两行
$SystemLogRateLimitInterv
$SystemLogRateLimitBurst 500
$ModLoad imklog
#$ModLoad immark
作了以上修改后,只要2秒内log数不超过500条rsyslogd就不会丢弃log了。
阅读全文
0 0
- Linux后台Daemon中打印debug message的方法
- 在linux中,让程序进入后台运行的命令—>daemon程序
- linux daemon中执行system调用方法
- 【linux 开发】Daemon后台运行
- 让Java程序作为linux的Daemon后台运行
- 让Java程序作为linux的Daemon后台运行
- python多线程中daemon的属性方法
- linux中Daemon进程
- JNI中输出debug message
- debug打印,后台跑,telnet上去也能看
- Linux的Service/Daemon
- Linux Daemon的编写
- Linux的bash中进程前台后台转换的方法
- DEBUG已经执行过的后台JOB的方法
- 如何打印出Looper中Message处理的log
- 编写Linux系统下Daemon程序的方法步骤
- linux 守护进程(daemon)的创建方法
- 编写Linux系统下Daemon程序的方法步骤
- do...while(0)解析
- Solr基础入门介绍
- 微信小程序学习笔记(1)
- Spring PropertyPlaceholderConfigurer获取属性文件值
- C语言文件操作lseek
- Linux后台Daemon中打印debug message的方法
- C语言指针的例题
- C++ 06 —— 拷贝构造函数
- 关于CSS的总结
- 12. Integer to Roman
- java 枚举
- 算法设计与应用基础
- LinkedBlockingQueue源码分析(JDK8)
- 使用Google与Chrome windows快捷键