syslog Linux系统log打印原理

本文介绍了两种常见的日志打印方式——syslog和stderr,详细讲解了syslog的不同等级及其含义,并通过代码示例展示了如何在C程序中使用这两种方式记录日志。syslog等级包括LOG_EMERG到LOG_DEBUG,适用于不同严重程度的消息。而stderr则直接将日志输出到标准错误,可能存在日志重定向的风险。

常见打印log代码

void d_logs(int level, const char *fmt, ...)
{
    va_list  va;
    char buff[LOG_LEN] = {0};

    if (g_log_level < level) {
        printf("error: log level error [%d:%d]\n ", g_log_level,  level);
        return;
    }

    snprintf(buff, LOG_LEN, "test: %s\n", fmt);

    va_start(va, fmt);
    if (syslog_mode == 1) {
        vsyslog(level, buff, ap);    -----》 使用系统log, 
    } else {
        vfprintf(stderr, buff, ap);  ----》输出到stderr
    }
    va_end(va);
    return;
}
 

int main(void)

{

/*打开日志*/

openlog("log_test ", LOG_PID|LOG_CONS, LOG_USER);

d_log(LOG_INFO,  "P

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值