68_进程之使用syslog来记录调试信息
2018-03-31 16:01
363 查看
openlog为当前的应用程序打开一个log文件
syslog用来记录一条信息
closelog用来关闭本程序的log文件
可以使用这三个函数,为系统文件写一条条的日志,用日志来做记录
日志信息就是一个文件,每发生一件事,就给文件写一条日志信息,之后查看这个文件,就知道发生了什么事情
各种参数
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);
ident当前应用程序的名字,因为我们很多程序都会向日志文件写信息,
日志信息是共用的,log要知道这一条是a写的还是b写的
option facility都是一些宏定义
option:
LOG_CONS:
PID:每一条信息里面加上PID,知道是哪个进程发的
因为父子进程的进程名字(ident)是一样的,必须要通过PID来区别
facility
跟什么相关的信息,默认的LOG_USER,绝大多数用的这个,
日志信息的重要程度,共有8个紧张程度
一般log信息在/VAR/log messages
Ubuntu中 var/log/syslog文件中的
其实系统中一直有一个守护进程syslogd
我们调用syslog函数,是给这个进程发消息,这个服务进程将消息保存在/ var/log/syslog文件中里面
用 cat /var/log/syslog 打开
总结,syslogd日志文件系统的服务器进程,提供日志服务,任何进程通过这三个函数跟syslogd通信,
这就是OS提供的服务式的设计,FTP也是,#include <stdio.h>
#include <syslog.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
printf("PID = %d.\n", getpid());
openlog(NULL, LOG_PID, LOG_USER);
syslog(LOG_DEBUG, "This is LT's log.\n");
closelog();
return 0;
}
![](https://img-blog.csdn.net/20180331160130163?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NhbmJhbnp1aTIwMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
加入准确时间信息的syslog
#include <stdio.h>
#include <syslog.h>
#include <sys/types.h>
#include <unistd.h>
#include <time.h>
int main(void)
{
time_t TimeNow;
char *str ={0};
TimeNow = time(NULL);
str = ctime(&TimeNow);
//printf("It's %s ", str);
printf("PID = %d.\n", getpid());
openlog(NULL, LOG_PID, LOG_USER);
syslog(LOG_DEBUG, str, 1);
syslog(LOG_DEBUG, "This is LT's log.\n");
closelog();
return 0;
}
syslog用来记录一条信息
closelog用来关闭本程序的log文件
可以使用这三个函数,为系统文件写一条条的日志,用日志来做记录
日志信息就是一个文件,每发生一件事,就给文件写一条日志信息,之后查看这个文件,就知道发生了什么事情
各种参数
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);
ident当前应用程序的名字,因为我们很多程序都会向日志文件写信息,
日志信息是共用的,log要知道这一条是a写的还是b写的
option facility都是一些宏定义
option:
LOG_CONS:
PID:每一条信息里面加上PID,知道是哪个进程发的
因为父子进程的进程名字(ident)是一样的,必须要通过PID来区别
facility
跟什么相关的信息,默认的LOG_USER,绝大多数用的这个,
日志信息的重要程度,共有8个紧张程度
一般log信息在/VAR/log messages
Ubuntu中 var/log/syslog文件中的
其实系统中一直有一个守护进程syslogd
我们调用syslog函数,是给这个进程发消息,这个服务进程将消息保存在/ var/log/syslog文件中里面
用 cat /var/log/syslog 打开
总结,syslogd日志文件系统的服务器进程,提供日志服务,任何进程通过这三个函数跟syslogd通信,
这就是OS提供的服务式的设计,FTP也是,#include <stdio.h>
#include <syslog.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
printf("PID = %d.\n", getpid());
openlog(NULL, LOG_PID, LOG_USER);
syslog(LOG_DEBUG, "This is LT's log.\n");
closelog();
return 0;
}
加入准确时间信息的syslog
#include <stdio.h>
#include <syslog.h>
#include <sys/types.h>
#include <unistd.h>
#include <time.h>
int main(void)
{
time_t TimeNow;
char *str ={0};
TimeNow = time(NULL);
str = ctime(&TimeNow);
//printf("It's %s ", str);
printf("PID = %d.\n", getpid());
openlog(NULL, LOG_PID, LOG_USER);
syslog(LOG_DEBUG, str, 1);
syslog(LOG_DEBUG, "This is LT's log.\n");
closelog();
return 0;
}
相关文章推荐
- 使用syslog来记录调试信息
- 进程学习10--syslog记录调试信息
- 守护进程使用syslog函数打印信息(基于ARM-Linux)
- 守护进程使用syslog函数打印信息(基于ARM-Linux)
- 如何使用Java API在黑莓手机上记录事件信息做代码调试
- win32使用OutputDebugString输出调试信息的方法
- 关于使用WindowsUpdate 或 Windows 自动升级时碰到的 svchost.exe 进程 CPU 资源占用过高的问题的相关信息
- Windows程序调试系列文章——使用VC++生成调试信息
- GridView使用技巧之:新增记录、GridView内数据验证、删除信息提示等
- 网络工程师交换试验手册之二十四:使用syslog记录Cisco设备日志
- 如何使用WMI获取进程信息
- Windows程序调试系列: 使用VC++生成调试信息
- Windows程序调试系列: 使用VC++生成调试信息
- 使用VC++生成调试信息
- Windows程序调试系列: 使用VC++生成调试信息
- 在不同的线程中使用printf打印调试信息居然引起程序CoreDump。
- Windows程序调试系列: 使用VC++生成调试信息
- 使用VC++生成调试信息
- GridView使用技巧之:新增记录、GridView内数据验证、删除信息提示等
- Windows程序调试系列文章——使用VC++生成调试信息