centos rsyslog配置及简单应用

来源:互联网 发布:linux启动图形化命令 编辑:程序博客网 时间:2024/06/05 00:08

配置:

$template testdailylog,"/var/log/uniqs/%programname%/%programname%_%syslogseverity-text%_%$year%-%$month%-%$day%.log"if $syslogfacility-text == "local3" then {    action(type="omfile"        fileOwner="uniqs" filegroup="uniqs" dynafile="testdailylog")    stop}

简单代码:

#include<syslog.h>#include<iostream>int main(){    openlog("gamesvr", LOG_CONS|LOG_PID, LOG_LOCAL3);    syslog(LOG_INFO,"######################################################################################## server start...\n");    std::string strInput = "test log type:%s";    syslog(LOG_EMERG, strInput.c_str(), "LOG_EMERG");    syslog(LOG_ALERT, strInput.c_str(), "LOG_ALERT");    syslog(LOG_CRIT, strInput.c_str(), "LOG_CRIT");    syslog(LOG_ERR, strInput.c_str(), "LOG_ERR");    syslog(LOG_WARNING, strInput.c_str(), "LOG_WARNING");    syslog(LOG_NOTICE, strInput.c_str(), "LOG_NOTICE");    syslog(LOG_INFO, strInput.c_str(), "LOG_INFO");    syslog(LOG_DEBUG, strInput.c_str(), "LOG_DEBUG");    std::cin>>strInput;    while(true)    {        syslog(LOG_INFO, strInput.c_str());        if(strInput == "e"||strInput == "E")        {            break;        }        std::cin>>strInput;    }    syslog(LOG_INFO,"######################################################################################## server stop...\n");    closelog();    return 0;}

说明:可以简单封一下,要不有可能程序异常结束时closelog()没有被调用到。删除日志时小心一点,用cat /dev/null>abc.log 这种方式,不要直接删除,直接删除后续日志会没有写到文件中。

缺陷:不能跨平台。

优点:API简洁、速度快。

原创粉丝点击