經過logger命令記錄日誌linux
logger是一個shell命令接口,能夠經過該接口使用Syslog的系統日誌模塊,還能夠從命令行直接向系統日誌文件寫入一行信息。shell
----------------------------------------------------------vim
logger 語法
logger [options] [messages]
**options (選項):**
-d, --udp
使用數據報(UDP)而不是使用默認的流鏈接(TCP)
-i, --id
逐行記錄每一次logger的進程ID
-f, --file file_name
記錄特定的文件
-h, --help
顯示幫助文本並退出
-n, --server
寫入指定的遠程syslog服務器,使用UDP代替內裝式syslog的例程
-P, --port port_num
使用指定的UDP端口。默認的端口號是514
-p, --priority priority_level
指定輸入消息的優先級,優先級能夠是數字或者指定爲 "facility.level" 的格式。好比:"-p local3.info " local3 這個設備的消息級別爲info。默認級別是 "user.notice"
-s, --stderr
輸出標準錯誤到系統日誌。
-t, --tag tag
指定標記記錄
-u, --socket socket
寫入指定的socket,而不是到內置系統日誌例程。
-V, --version
現實版本信息並退出
**messages:**寫入log文件的內容消息,能夠與-f配合使用。
logger 以0退出表示成功,大於0表示失敗。安全
日誌級別
facility:
auth: 用戶受權
authpriv: 受權和安全
cron: 計劃任務
daemon: 系統守護進程
kern: 與內核有關的信息
lpr 與打印服務有關的信息
mail 與電子郵件有關的信息
news 來自新聞服務器的信息
syslog 由syslog生成的信息
user 用戶的程序生成的信息,默認
uucp 由uucp生成的信息
local0~7 用來定義本地策略
level:
alert 須要當即採起動做
crit 臨界狀態
debug 調試
emerg 系統不可用
err 錯誤狀態
error 錯誤狀態
info 正常消息
notice 正常可是要注意服務器
示例:
$ logger System Rebooted #往系統日誌例程中寫入「System Rebooted」可在/var/log/syslog中查看
寫入到指定的log文件中。socket
示例:
$ vim /etc/rsyslog.conf #在最後一行加入local3.* /var/log/my_test.log 意思是來自local3的全部消息都記錄到/var/log/my_test.log中。ide
$ service rsyslog restart #重啓rsyslog服務測試
$ logger -i -t "my_test" -p local3.notice "test_info" .net
$ cat /var/log/my_test.log
May 5 21:27:37 gino-virtual-machine my_test[3651]: test_info命令行
-i 在每行都記錄進程ID
-t my_test每行記錄都加上「my_test」這個標籤
-p local3.notice 設置記錄的設備和級別
"test_info" 輸出信息
1。修改文件:
編輯syslog.conf,
# vim /etc/syslog.conf
在第一行加入local3.none,使得設備local3的日誌不記錄在messages文件裏,
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local1.none;local3.none /var/log/messages
將設備local3的全部級別的信息都記錄在userlog文件裏,
#user log
local3.* /var/log/userlog
從新加載syslog服務的配置文件
[root@KEVEIN Slides]# service syslog restart
Reloading syslogd... [ OK ]
Reloading klogd... [ OK ]
2。測試:
測試機器的環境:
OS:Red Hat Enterprise Linux 5 update 3
Network: 192.168.0.100/24 Gateway:192.168.0.1
[root@KEVEIN Slides]# ping 192.168.0.1 | logger -it logger_test -p local3.notice &
[2] 22484
命令logger -it logger_test -p local3.notice中的參數含義:
-i 在每行都記錄進程ID
-t logger_test 每行記錄都加上「logger_test」這個標籤
-p local3.notice 設置記錄的設備和級別
[root@KEVEIN Slides]# tail -f /var/log/userlog
Oct 6 12:48:43 kevein logger_test[22484]: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
Oct 6 12:48:43 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=49.7 ms
Oct 6 12:48:44 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=68.4 ms
Oct 6 12:48:45 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=315 ms
Oct 6 12:48:46 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=279 ms
Oct 6 12:48:47 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=347 ms
Oct 6 12:48:49 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=6 ttl=253 time=701 ms
Oct 6 12:48:50 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=7 ttl=253 time=591 ms
Oct 6 12:48:51 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=8 ttl=253 time=592 ms
Oct 6 12:48:52 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=9 ttl=253 time=611 ms
Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms
ping命令的輸出成功輸出到/var/log/userlog文件中,實驗成功。