linux日誌logger命令詳解

經過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文件中,實驗成功。

相關文章
相關標籤/搜索