==========================例子==神人指点===============================
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 ([email protected]) (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部分
可以格式化输出
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()的后续调用。他的值为具体是下列值取与运算的结果
==============================================================================
原文: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);
.........不想翻译了 还不准确 没人给个例子我做做吧