rsyslog.conf和syslog函数使用

==========================例子==神人指点===============================

Apr  3 11:18:32 localhost kernel: imklog 4.6.2, log source = /proc/kmsg started.
Apr  3 11:18:32 localhost rsyslogd: [origin software="rsyslogd" swVersion="4.6.2" x-pid="1509" x-info="http://www.rsyslog.com"] (re)start
Apr  3 11:18:32 localhost kernel: Initializing cgroup subsys cpuset
Apr  3 11:18:32 localhost kernel: Initializing cgroup subsys cpu
Apr  3 11:18:32 localhost kernel: Linux version 2.6.32-220.el6.x86_64 (root@localhost.localdomain) (gcc version 4.4.5 20110214 (NeoKylin 4.4.5-6) (GCC) ) #1 SMP Wed Sep 26 11:49:22 CST 2012
Apr  3 11:18:32 localhost kernel: Command line: ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us nomodeset rhgb quiet vga=0x31A selinux=1 enforcing=1
Apr  3 11:18:32 localhost kernel: KERNEL supported cpus:
Apr  3 11:18:32 localhost kernel:  Intel GenuineIntel
Apr  3 11:18:32 localhost kernel: BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
Apr  3 11:18:32 localhost kernel: BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)

Apr 18 19:37:02 mail postfix/postfix-script[3411]: starting the Postfix mail system
Apr 18 19:37:02 mail postfix/master[3412]: daemon started -- version 2.6.6, configuration /etc/postfix
Apr 18 19:37:40 mail postfix/postfix-script[3866]: stopping the Postfix mail system
Apr 18 19:37:40 mail postfix/master[3412]: terminating on signal 15
Apr 18 19:39:35 mail postfix/postfix-script[3330]: starting the Postfix mail system
Apr 18 19:39:35 mail postfix/master[3331]: daemon started -- version 2.6.6, configuration /etc/postfix
syslogd生成的时间        $ident        $optlog         $format and $agr
与上面打印信息对应的说明

==========================================================

[ Apr 18 19:44:45 mail ] :是syslogd自己做的

openlog("mail",);
man openlog

openlog("postfix", “LOG_NDELAY,LOG_PIG”,"LOG_MAIL");# don't forget this

日志上面的mail是由$ident定义的。
$logopt是定义了postfix/master[3418]部分,一般用上面的两个LOG_PID参数只为了生成[3418]
$facility:指定是属于哪个日志,说明日志类别:mail——>LOG_MAIL——>maillog还有其他类别

syslog
(level, "%s %f",var);  //相当于write 写入的部分是: terminating on signal 15 即日志的text部分
可以格式化输出

syslog为每个事件赋予几个不同的优先级:
LOG_EMERG:紧急情况,需要立即通知技术人员。
LOG_ALERT:应该被立即改正的问题,如系统数据库被破坏,ISP连接丢失。
LOG_CRIT:重要情况,如硬盘错误,备用连接丢失。
LOG_ERR:错误,不是非常紧急,在一定时间内修复即可。
LOG_WARNING:警告信息,不是错误,比如系统磁盘使用了85%等。
LOG_NOTICE:不是错误情况,也不需要立即处理。
LOG_INFO:情报信息,正常的系统消息,比如骚扰报告,带宽数据等,不需要处理。
LOG_DEBUG:包含详细的开发情报的信息,通常只在调试一个程序时使用。

closelog();

============================================================================

vim  /ec/rsyslog.conf 

 

 *.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                            /var/log/secure

# Log all the mail messages in one place.
mail.*                                  -/var/log/maillog  //syslog写入maillog是在这里配置的
mail.*                                  |/tmp/mailpipe //syslog写入mailpipe在这里配置
*.error                                 -/tmp/log/mailerror.log //同上  (自己添加)
*.info                                   /tmp/log/mailinfo   (自己添加)

local1.*                               /var/log/my.log   (自定义日志)

mail.* :表示是一个大类,由$factilty指定的LOG_MAIL作用的,如果$facilty指定里LOG_MAIL 那么接下来调用的syslog函数写入的text都将写到maillog中去

-/var/log/maillog中"-"表示不是实时写入,是有缓存时间,也很短 没有那么着急,如果没有就是实时写入。“|”表示管道。

下面.*error和.*info表示mail下面的子类,配置的该子类到底写入哪个log由syslog()函数的第一个参数指定:
syslog("LOG_ERROR","test error yingying.liu  ") :LOG_ERROR指定里这是一条error信息,即在运行时候,该条信息会被写入mail.*和*.error配置的log中,而*.info却没有,
配置可以自己根据openlog()的定义添加

=================================百度=各个参数没有一一试过===========================================
option参数所指定的标志用来控制openlog()操作和syslog()的后续调用。他的值为具体是下列值取与运算的结果

LOG_CONS:直接写入系统控制台,如果有一个错误,同时发送到系统日志记录。
LOG_NDELAY:立即打开连接(通常,打开连接时记录的第一条消息)。(一般会设置)
LOG_NOWAIT:不要等待子进程,因为其有可能在记录消息的时候就被创建了(GNU C库不创建子进程,所以该选项在Linux上没有影响。)
LOG_ODELAY:延迟连接的打开直到 syslog 函数调用。(这是默认情况下,需要没被指定的情况下。)
LOG_PERROR:(不在SUSv3情况下)同时输出到stderr(标准错误文件)。
LOG_PID:包括每个消息的PID。(一般会设置)
3.facility参数是用来指定记录消息程序的类型。它让指定的配置文件,将以不同的方式来处理来自不同方式的消息。它的值可能为 LOG_KERN、 LOG_USER、LOG_MAIL、LOG_DAEMON、LOG_AUTH、LOG_SYSLOG、LOG_LPR、LOG_NEWS、LOG_UUCP、LOG_CRON 或 LOG_AUTHPRIV

==============================================================================

原文:http://search.cpan.org/~saper/Sys-Syslog-0.32/Syslog.pm

简要:

use Sys::Syslog;# all except setlogsock()

use Sys::Syslogqw(:standard:macros);# standard functions & macros

openlog($ident,$logopt,$facility);# don't forget this

syslog($priority,$format,@args);

$oldmask = setlogmask($mask_priority);

closelog();

描述:

use Sys::Syslog是一个UNIX syslog程序接口。、

标准接口函数:

openlog  closelog  setlogmask syslog

扩展接口:

setlogsock

函数:

openlog($ident,$logopt,$facility);

打开syslog,
$ident是被每个消息预制的
$logopt是另个或者多个元素
$facility是指定系统的某个部分的报告(日志):可以是字符串或者数字宏
例如:LOG_USER 或者LOG_LOCAL:看到设备列表,和在你的系统中这写设备的syslog文档
$logopt:
cons :此选项将会被忽略,当故障机制转换为自动控制台(如果所有的media都失败)
ndelay :立刻打开连接(一般情况下,当第一条记录写入时链接是被打开的)
noeol :如果是真,去掉消息行末的“\n”,一般用于一些调试syslog程序;
nofatal:如果为真,openlog()和syslog只会出现警告信息而不是退出,当连接日志失败时候,
nonul:消息中将没有NULL字符出现,一般用于调试。
nowait:不等待那些有可能在记录时候创建的子进程退出。
perror:将消息写入标准错误输出和系统日志。
pid:每条信息都包含PID

例子:
用ndelay、pid和设备LOCAL0打开syslog:
openlog($name, "ndelay,pid", "LOCAL0");
用相应的宏表示LOCAL0;
openlog($name, "ndelay,pid", LOG_LOCAL0);

syslog($priority,$message)
syslog($priority,$format,@args)

如果$priority允许,$message或者sprintf($format, @args)可以在消息中加%m,或者$format被“$!”(最后一次错误信息)替代
$priority可以指定一个级别或者设备,可以已字符串或者数字宏表示。
例如:
syslog("info",$message);

syslog(LOG_INFO,$message);

.........不想翻译了 还不准确 没人给个例子我做做吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值