linux syslog日志
一、syslog協(xié)議介紹
?
二、syslog函數(shù)
三、Linux?syslog配置
?
一、syslog協(xié)議介紹
1、介紹
??? 在Unix類操作系統(tǒng)上,syslog廣泛應(yīng)用于系統(tǒng)日志。syslog日志消息既可以記錄在本地文件中,也可以通過網(wǎng)絡(luò)發(fā)送到接收syslog的服務(wù)器。接收syslog的服務(wù)器可以對多個設(shè)備的syslog消息進(jìn)行統(tǒng)一的存儲,或者解析其中的內(nèi)容做相應(yīng)的處理。常見的應(yīng)用場景是網(wǎng)絡(luò)管理工具、安全管理系統(tǒng)、日志審計(jì)系統(tǒng)。
??? 完整的syslog日志中包含產(chǎn)生日志的程序模塊(Facility)、嚴(yán)重性(Severity或 Level)、時間、主機(jī)名或IP、進(jìn)程名、進(jìn)程ID和正文。在Unix類操作系統(tǒng)上,能夠按Facility和Severity的組合來決定什么樣的日志消息是否需要記錄,記錄到什么地方,是否需要發(fā)送到一個接收syslog的服務(wù)器等。由于syslog簡單而靈活的特性,syslog不再僅限于 Unix類主機(jī)的日志記錄,任何需要記錄和發(fā)送日志的場景,都可能會使用syslog。
??? 長期以來,沒有一個標(biāo)準(zhǔn)來規(guī)范syslog的格式,導(dǎo)致syslog的格式是非常隨意的。最壞的情況下,根本就沒有任何格式,導(dǎo)致程序不能對syslog 消息進(jìn)行解析,只能將它看作是一個字符串。
在2001年定義的RFC3164中,描述了BSD syslog協(xié)議:
http://www.ietf.org/rfc/rfc3164.txt
??? 不過這個規(guī)范的很多內(nèi)容都不是強(qiáng)制性的,常常是“建議”或者“約定”,也由于這個規(guī)范出的比較晚,很多設(shè)備并不遵守或不完全遵守這個規(guī)范。接下來就介紹一下這個規(guī)范。
??? 約定發(fā)送syslog的設(shè)備為Device,轉(zhuǎn)發(fā)syslog的設(shè)備為Relay,接收syslog的設(shè)備為Collector。Relay本身也可以發(fā)送自身的syslog給Collector,這個時候它表現(xiàn)為一個Device。Relay也可以只轉(zhuǎn)發(fā)部分接收到的syslog消息,這個時候它同時表現(xiàn)為Relay和Collector。
??? syslog消息發(fā)送到Collector的UDP 514端口,不需要接收方應(yīng)答,RFC3164建議 Device 也使用514作為源端口。規(guī)定syslog消息的UDP報文不能超過1024字節(jié),并且全部由可打印的字符組成。完整的syslog消息由3部分組成,分別是PRI、HEADER和MSG。大部分syslog都包含PRI和MSG部分,而HEADER可能沒有。
2、syslog的格式
??? 下面是一個syslog消息:
<30>Oct 9 22:33:20 hlfedora auditd[1787]: The audit daemon is exiting.
??? 其中“<30>”是PRI部分,“Oct 9 22:33:20 hlfedora”是HEADER部分,“auditd[1787]: The audit daemon is exiting.”是MSG部分。
2.1、PRI部分?
??? PRI部分由尖括號包含的一個數(shù)字構(gòu)成,這個數(shù)字包含了程序模塊(Facility)、嚴(yán)重性(Severity),這個數(shù)字是由Facility乘以 8,然后加上Severity得來。不知道他們?yōu)槭裁窗l(fā)明了這么一種不直觀的表示方式。
也就是說這個數(shù)字如果換成2進(jìn)制的話,低位的3個bit表示Severity,剩下的高位的部分右移3位,就是表示Facility的值。
十進(jìn)制30 = 二進(jìn)制0001 1110
0001 1... = Facility: DAEMON - system daemons (3)
.... .110 = Severity: INFO - informational (6)
Facility的定義如下,可以看出來syslog的Facility是早期為Unix操作系統(tǒng)定義的,不過它預(yù)留了User(1),Local0~7 (16~23)給其他程序使用:
????? Numerical???????????? Facility
???????? Code
????????? 0???????????? kernel messages
????????? 1???????????? user-level messages
????????? 2???????????? mail system
????????? 3???????????? system daemons
????????? 4???????????? security/authorization messages (note 1)
????????? 5???????????? messages generated internally by syslogd
????????? 6???????????? line printer subsystem
????????? 7???????????? network news subsystem
????????? 8???????????? UUCP subsystem
????????? 9???????????? clock daemon (note 2)
???????? 10???????????? security/authorization messages (note 1)
???????? 11???????????? FTP daemon
???????? 12???????????? NTP subsystem
???????? 13???????????? log audit (note 1)
???????? 14???????????? log alert (note 1)
???????? 15???????????? clock daemon (note 2)
???????? 16???????????? local use 0? (local0)
???????? 17???????????? local use 1? (local1)
???????? 18???????????? local use 2? (local2)
???????? 19???????????? local use 3? (local3)
???????? 20???????????? local use 4? (local4)
???????? 21???????????? local use 5? (local5)
???????? 22???????????? local use 6? (local6)
???????? 23???????????? local use 7? (local7)
?????? Note 1 - Various operating systems have been found to utilize
????????? Facilities 4, 10, 13 and 14 for security/authorization,
????????? audit, and alert messages which seem to be similar.
?????? Note 2 - Various operating systems have been found to utilize
????????? both Facilities 9 and 15 for clock (cron/at) messages.
Severity的定義如下:
?????? Numerical???????? Severity
??????? Code
???????? 0?????? Emergency: system is unusable
???????? 1?????? Alert: action must be taken immediately
???????? 2?????? Critical: critical conditions
???????? 3?????? Error: error conditions
???????? 4?????? Warning: warning conditions
???????? 5?????? Notice: normal but significant condition
???????? 6?????? Informational: informational messages
???????? 7?????? Debug: debug-level messages
??? 也就是說,尖括號中有1~3個數(shù)字字符,只有當(dāng)數(shù)字是0的時候,數(shù)字才以0開頭,也就是說00和01這樣在前面補(bǔ)0是不允許的。
2.2、HEADER部分?
??? HEADER部分包括兩個字段,時間和主機(jī)名(或IP)。
??? 時間緊跟在PRI后面,中間沒有空格,格式必須是“Mmm dd hh:mm:ss”,不包括年份。“日”的數(shù)字如果是1~9,前面會補(bǔ)一個空格(也就是月份后面有兩個空格),而“小時”、“分”、“秒”則在前面補(bǔ)“0”。月份取值包括:
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
??? 時間后邊跟一個空格,然后是主機(jī)名或者IP地址,主機(jī)名不得包括域名部分。
??? 因?yàn)橛行┫到y(tǒng)需要將日志長期歸檔,而時間字段又不包括年份,所以一些不標(biāo)準(zhǔn)的syslog格式中包含了年份,例如:
<165>Aug 24 05:34:00 CST 1987 mymachine myproc[10]: %% It's
time to make the do-nuts. %% Ingredients: Mix=OK, Jelly=OK #
Devices: Mixer=OK, Jelly_Injector=OK, Frier=OK # Transport:
Conveyer1=OK, Conveyer2=OK # %%
??? 這樣會導(dǎo)致解析程序?qū)ⅰ癈ST”當(dāng)作主機(jī)名,而“1987”開始的部分作為MSG部分。解析程序面對這種問題,可能要做很多容錯處理,或者定制能解析多種syslog格式,而不僅僅是只能解析標(biāo)準(zhǔn)格式。
HEADER部分后面跟一個空格,然后是MSG部分。
??? 有些syslog中沒有HEADER部分。這個時候MSG部分緊跟在PRI后面,中間沒有空格。
2.3、MSG部分?
??? MSG部分又分為兩個部分,TAG和Content。其中TAG部分是可選的。
??? 在前面的例子中(“<30>Oct 9 22:33:20 hlfedora auditd[1787]: The audit daemon is exiting.”),“auditd[1787]”是TAG部分,包含了進(jìn)程名稱和進(jìn)程PID。PID可以沒有,這個時候中括號也是沒有的。
??? 進(jìn)程PID有時甚至不是一個數(shù)字,例如“root-1787”,解析程序要做好容錯準(zhǔn)備。
??? TAG后面用一個冒號隔開Content部分,這部分的內(nèi)容是應(yīng)用程序自定義的。
3、RFC3195?
??? BSD syslog協(xié)議使用UDP協(xié)議在網(wǎng)絡(luò)中傳遞,然而UDP是一個不可靠的協(xié)議,并且syslog也沒有要求接收方有所反饋。為了解決這個問題,RFC又定義了一個新的規(guī)范來可靠的傳遞syslog消息,它使用TCP協(xié)議:
http://www.ietf.org/rfc/rfc3195.txt
??? 不過大多數(shù)情況下,使用UDP發(fā)送不需要確認(rèn)的syslog消息,已經(jīng)能夠滿足要求了,并且這樣做非常簡單。因此到目前為止,RFC3195的應(yīng)用還是很少見的。
?
?
二、syslog函數(shù)
?
linux?C中提供一套系統(tǒng)日記寫入接口,包括三個函數(shù):openlog,syslog和closelog。
調(diào)用openlog是可選擇的。如果不調(diào)用openlog,則在第一次調(diào)用syslog時,自動調(diào)用openlog。調(diào)用closelog也是可選擇的,它只是關(guān)閉被用于與syslog守護(hù)進(jìn)程通信的描述符。
?
#include //頭文件
void openlog (char*ident, int option, int facility);?
void closelog();?
void syslog(int priority, char*format,……);
?
priority參數(shù)的格式(severity level|facility code)
示例:
LOG_ERR|LOG_USER
?
severity level:
Priority Level ? ? ? ? ? ? ? Description
LOG_EMERG ? ? ? ? ? ? ? ? ? ?An emergency situation
LOG_ALERT ? ? ? ? ? ? ? ? ? ?High-priority problem, such as database corruption
LOG_CRIT ? ? ? ? ? ? ? ? ? ? Critical error, such as hardware failure
LOG_ERR ? ? ? ? ? ? ? ? ? ? ?Errors
LOG_WARNING ? ? ? ? ? ? ? ? ?Warning
LOG_NOTICE ? ? ? ? ? ? ? ? ? Special conditions requiring attention
LOG_INFO ? ? ? ? ? ? ? ? ? ? Informational messages
LOG_DEBUG ? ? ? ? ? ? ? ? ? ?Debug messages?
?
facility value(轉(zhuǎn)自syslog.h頭文件):
?
#define LOG_KERN ? ? ? ?(0<<3) ?
#define LOG_USER ? ? ? ?(1<<3) ?
#define LOG_MAIL ? ? ? ?(2<<3) ?
#define LOG_DAEMON ? ? ?(3<<3) ?
#define LOG_AUTH ? ? ? ?(4<<3) ?
#define LOG_SYSLOG ? ? ?(5<<3) ?
#define LOG_LPR ? ? ? ? (6<<3) ?
#define LOG_NEWS ? ? ? ?(7<<3) ?
#define LOG_UUCP ? ? ? ?(8<<3) ?
#define LOG_CRON ? ? ? ?(9<<3) ?
#define LOG_AUTHPRIV ? ?(10<<3)
#define LOG_FTP ? ? ? ? (11<<3)
三、linux syslog配置
1)、syslog日志服務(wù):
1、守護(hù)進(jìn)程:syslog
2、端口:514
3、配置文件:/etc/syslog.conf
4、常見日志文件:
/var/log/dmesg ? ? ?內(nèi)核引導(dǎo)信息日志
/var/log/message ? ?標(biāo)準(zhǔn)系統(tǒng)錯誤信息日志
/var/log/maillog ? ?郵件系統(tǒng)信息日志
/var/log/cron ? ? ? 計(jì)劃任務(wù)日志
/var/log/secure ? ? 安全信息日志
2)、 配置文件:
syslog配置文件如下
-----------------------------------------------------------------
[root@server ~]# vim /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.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
# Log cron stuff
cron.* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/var/log/cron
# Everybody gets emergency messages
*.emerg ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *
# Save news errors of level crit and higher in a special file.
uucp,news.crit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/var/log/spooler
# Save boot messages also to boot.log
local7.* ? ??
-----------------------------------------------------------------
配置文件中每行表示一個項(xiàng)目,格式為:facility.level ? ?action
由兩個部分組成:
第一部分:選擇條件(可以有一個或者多個條件),分為兩個字段。
第二部分:操作動作;
? ? 1、選擇條件
? ? 選擇條件本身分為兩個字段,之間用一個小數(shù)點(diǎn)(.)分隔。前一字段是一項(xiàng)服務(wù),后一字段是一個優(yōu)先級。選擇條件是對消息類型的一種分類,這種分類便于人們把不同類型的消息發(fā)送到不同的地方。在同一個syslog配置行上允許出現(xiàn)一個以上的選擇條件,但必須用分號(;)隔開。
? ? 常見facility:
kern ? ? ? ? ? ? ? ?內(nèi)核信息;
user ? ? ? ? ? ? ? ?用戶進(jìn)程信息;
mail ? ? ? ? ? ? ? ?電子郵件相關(guān)信息;
daemon ? ? ? ? ?后臺進(jìn)程相關(guān)信息;
authpriv ? ? ? ? ? ?包括特權(quán)信息如用戶名在內(nèi)的認(rèn)證活動;
cron ? ? ? ? ? ? ? ?計(jì)劃任務(wù)信息;
syslog ? ? ? ? ?系統(tǒng)日志信息
lpr ? ? ? ? ? ? 打印服務(wù)相關(guān)信息。
news ? ? ? ? ? ?新聞組服務(wù)器信息
uucp ? ? ? ? ? ? ? ?uucp 生成的信息
local0----local7 ? ? ? ?本地用戶信息
? ? 2、重要級:
重要級是選擇條件的第二個字段,它代表消息的緊急程度。
按嚴(yán)重程度由低到高排序:
debug ? ? ? 不包含函數(shù)條件或問題的其他信息
info ? ? ? ? ? ?提供信息的消息
none ? ? ? ?沒有重要級,通常用于排錯
notice ? ? ?具有重要性的普通條件
warning ? ? 預(yù)警信息
err ? ? ? ? 阻止工具或某些子系統(tǒng)部分功能實(shí)現(xiàn)的錯誤條件
crit ? ? ? ? ? ?阻止某些工具或子系統(tǒng)功能實(shí)現(xiàn)的錯誤條件
alert ? ? ? ? ? 需要立即被修改的條件
emerg ? ? ? 該系統(tǒng)不可用
? ? 不同的服務(wù)類型有不同的優(yōu)先級,數(shù)值較大的優(yōu)先級涵蓋數(shù)值較小的優(yōu)先級。如果某個選擇條件只給出了一個優(yōu)先級而沒有使用任何優(yōu)先級限定符,對應(yīng)于這個優(yōu)先級的消息以及所有更緊急的消息類型都將包括在內(nèi)。比如說,如果某個選擇條件里的優(yōu)先級是“warning”,它實(shí)際上將把“warning”、 “err”、“crit”、“alert”和“emerg”都包括在內(nèi)。
? ? 3、操作動作
日志信息可以分別記錄到多個文件里,還可以發(fā)送到命名管道、其他程序甚至另一臺機(jī)器。
syslog 主要支持以下活動:
file ? ? ? ? ? ? ? ? ? ?指定文件的絕對路徑
terminal 或 prin ? ? ? ?完全的串行或并行設(shè)備標(biāo)志符
@host(@IP地址) ? ?遠(yuǎn)程的日志服務(wù)器
?
3)、 搭建Linux日志服務(wù)器:
1、編輯/etc/sysconfig/syslog文件,讓服務(wù)器能夠接受客戶端傳來的數(shù)據(jù):
在“SYSLOGD_OPTIONS”行上加“-r”選項(xiàng)以允許接受外來日志消息。
-----------------------------------------------------------------
[root@client ~]# vim /etc/sysconfig/syslog
# Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-r -m 0"
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
# ? ?once for processing with 'ksymoops'
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS="-x"
#
SYSLOG_UMASK=077
# set this to a umask value to use for all log files as in umask(1).
# By default, all permissions are removed for "group" and "other".
-----------------------------------------------------------------
?2、重新啟動syslog守護(hù)進(jìn)程。?
-----------------------------------------------------------------
[root@client ~]# service syslog restart
關(guān)閉內(nèi)核日志記錄器: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]
關(guān)閉系統(tǒng)日志記錄器: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]
啟動系統(tǒng)日志記錄器: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]
啟動內(nèi)核日志記錄器: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]
[root@client ~]#
-----------------------------------------------------------------
?3、關(guān)閉iptables,也可以開啟514端口。本例中我們關(guān)閉iptables。
? ? ? ? ? 四、配置各客戶端:
? ? ? ? ?1、配置/etc/syslog.conf
? ? ? ? ?修改客戶機(jī)/etc/syslog.conf文件,在有關(guān)配置行的操作動作部分用一個“@”字符指向日志服務(wù)器
-----------------------------------------------------------------
[root@client ~]# vim /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /dev/console
*.* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @10.64.165.210
# The authpriv file has restricted access.
authpriv.* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/var/log/secure
……下面省略
-----------------------------------------------------------------
?另外如果配置了DNS域名的話可以使用域名。
? ? ? ? ? 2、重啟客戶端syslog使設(shè)置生效。
檢測成果:
? ? ? ? 下圖是我們在客戶端重啟iptables服務(wù)后在服務(wù)端看到的日志情況:
-----------------------------------------------------------------
[root@client ~]# cat /var/log/messages |tail
Nov 30 16:44:29 10.64.165.200 kernel: klogd 1.4.1, log source = /proc/kmsg started.
Nov 30 16:44:33 10.64.165.200 kernel: Removing netfilter NETLINK layer.
Nov 30 16:44:33 10.64.165.200 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Nov 30 16:44:33 10.64.165.200 kernel: Netfilter messages via NETLINK v0.30.
Nov 30 16:44:33 10.64.165.200 kernel: ip_conntrack version 2.4 (4096 buckets, 32768 max) - 228 bytes per conntrack
————————————————————————————————————————————————————————————————
Linux日記系統(tǒng)由系統(tǒng)日志監(jiān)控程序syslogd和內(nèi)核日志監(jiān)控程序klogd組成。從它們的命名可以看到,這兩個監(jiān)控程序都是守護(hù)程序(daemon),且都注冊成了系統(tǒng)服務(wù)。換句話說,我們可以在目錄/etc/init.d/下找到它們對應(yīng)的執(zhí)行程序,并通過service命令對它們進(jìn)行啟動,關(guān)閉,重啟等操作。/etc/syslog.conf文件是Linux日記系統(tǒng)的配置文件。下面是本人/etc/syslog.conf文件內(nèi)容(ubuntu下為/etc/rsyslog.conf):
| ? |
?
?
在對這個配置文件進(jìn)行詳細(xì)的解釋之前,我們先看一下在Linux C編程中如何利用syslog進(jìn)行日記。
syslog APIs
Linux C中提供一套系統(tǒng)日記寫入接口,包括三個函數(shù):openlog,syslog和closelog。
調(diào)用openlog是可選擇的。如果不調(diào)用openlog,則在第一次調(diào)用syslog時,自動調(diào)用openlog。調(diào)用closelog也是可選擇的,它只是關(guān)閉被用于與syslog守護(hù)進(jìn)程通信的描述符。
下面是這三個函數(shù)的調(diào)用格式:
?
其中openlog和closelog都是可選的。不過,通過調(diào)用openlog,我們www.linuxidc.com可以指定ident參數(shù)。這樣,ident將被加到每條日記記錄中。ident一般設(shè)成程序的名字,如在下面例子中的"testsyslog":
?
編譯生成可執(zhí)行文件后,每運(yùn)行一次,程序?qū)⑼?var/log/messages添加一條如下的記錄:
?
格式基本是:timestamp hostname ident[pid]:log message。其中ident就是我們調(diào)用openlog是指定的"testsyslog",而之所以會打印出[27214]是openlog的option參數(shù)中指定了LOG_PID。下面我們詳細(xì)討論openlog函數(shù)中的option,facility和syslog函數(shù)中的priority參數(shù)。
根據(jù)/usr/include/sys/syslog.h文件,我們可以看到syslog支持的option如下:
我們可以通過與操作結(jié)合這些option。syslog支持的faclility如下:
facility的ID(上面對應(yīng)的數(shù)值)與名字的對應(yīng)關(guān)系如下:
這個對應(yīng)關(guān)系作用是是將syslog系統(tǒng)調(diào)用中facility ID和syslog.conf文件中的配置選項(xiàng)對應(yīng)起來。后面將詳細(xì)講解。facility的作用是指明調(diào)用syslog應(yīng)用的類型。syslog支持的priority如下:
priority的ID(上面對應(yīng)的數(shù)值)與名字的對應(yīng)關(guān)系如下:
這個對應(yīng)關(guān)系的作用和facility情況是相同的,都是為了與syslog.conf文件中的配置選項(xiàng)對應(yīng)起來。priority的作用是指明日記記錄的優(yōu)先級,也可以理解成記錄時間的嚴(yán)重程度。在實(shí)際使用中,syslog函數(shù)中的priority參數(shù)實(shí)際上是前面提到的facility和priority的組合,通過與操作。
回到前面提到的syslog.conf文件和testsyslog的程序,根據(jù)前面的分析,我們來研究一下為什么testsyslog會將日記記錄寫到文件/var/log/messages中,而不是別的文件。
syslog.conf文件行的基本語法是這樣的:
[消息類型(規(guī)則)]???? [處理方案(日記文件)]
這里需要注意的是,兩者之間必須用一個或者多個Tab字符分開。消息類型是由”消息來源“(facility)和”緊急程度“(priority)構(gòu)成,中間點(diǎn)號連接。如前面syslog.conf文件中的news.crit表示來自news的”關(guān)鍵“狀況。這里,news表示消息來源,crit表示關(guān)鍵狀況。通配符*表示一切消息來源,如第一條規(guī)則:*.info,將info級以上(notice,warning, err, alert, emerg)(priority表)的所有消息發(fā)送到日記文件/var/log/messages。而testsyslog程序中,調(diào)用syslog函數(shù)時指定的priority是LOG_USER | LOG_INFO,根據(jù)上面提到的ID和名字對應(yīng)的關(guān)系,對應(yīng)的消息類型規(guī)則是user.info,包含在規(guī)則*.info中,所以日記記錄會寫到/var/log/messages。
修改syslog.conf文件
一般來說,我們希望能夠?yàn)樽约旱膽?yīng)用程序指定特定的日記文件。這時候,我們就需要修改syslog.conf文件。假設(shè)我們現(xiàn)在要把調(diào)試(debug)日記記錄寫到文件/var/log/debug文件中。第一步要做的是,在syslog.conf文件添加如下消息規(guī)則作為第一條規(guī)則:
要是添加的新規(guī)則生效,第二步我們需要重啟syslogd和klogd:service syslog restart(ubuntu下為/etc/init.d/rsyslog restart)
為了測試新規(guī)則是否生效,我們可以將testsyslog修改如下:
編譯生成執(zhí)行文件后,每運(yùn)行一次,/var/log/debug文件都會增加一條新的記錄
總結(jié)
以上是生活随笔為你收集整理的linux syslog日志的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决 Eclipse 项目有红感叹号的方
- 下一篇: opencv3.10加入OPENCV_c