syslog

syslog是Linux中设置系统日记的一种工具。主要有三个函数openlog,syslog,closelog。


需要的库

#include <syslog.h>


void openlog(const char* ident, int options, int facility);

注意openlog是可选的,如不调用openlog,则在第一次调用syslog,自动调用openlog。

同时openlog被调用时,不设定的情况下,不立即创建套接字,而是在openlog被调用时才创建。


ident 是由syslog冠于每个日志消息之前的字符串

options 由一个或多个逻辑或构成

facility 用于标识消息发送消息发送进程类型


option的参数

LOG_CONS 若无法发送到syslogd守护进程则登记到控制台

LOG_NDELAY 不延迟打开,立即建立套接字

LOG_PERROR 既发送到syslogd守护进程,并登记到标准错误输入

LOG_PID  随每个日志登记进程ID


facility的参数

LOG_LOCAL(0~7) 本地使用

LOG_FTP FTP守护进程

LOG_DAEMON 系统守护进程


void syslog(int priority, const char* format,.....);

syslog用于把日志消息给系统程序syslogd去记录


priority是level和faility组合的。

message类似printf的格式串。


level的参数

LOG_EMERG 0 系统不可用

LOG_ALERT 1 必须立即采取行动

LOG_CRIT 2 临界条件

LOG_ERR 3 出错条件

LOG_WARNING 4 警告条件

LOG_NOTICE 5 正常且重要的条件(默认)

LOG_INFO 6 通告消息

LOG_DEBUG 7 调试级消息


void closelog();

可选的,用于关闭正在使用的写系统日志的描述符

#include<syslog.h>
int main()
{
	int log_test;
	/*打开日志*/
	openlog("log_test ", LOG_PID|LOG_CONS, LOG_USER);
	/*写日志*/
	syslog(LOG_INFO, "this is my writen PID information, pid=%d", getpid());
/*关闭日志*/
	closelog();
	return 0;
}


gcc logtest.c -o logtest

./logtest

vim /var/log/messages

按大写G跳到未行

Jun  1 03:39:12 localhost log_test [2928]: this is my writen PID information, pid=2928













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值