歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

printk無法輸出到打印台問題和Linux日志文件詳解

1. 查看當前控制台的打印級別
 cat /proc/sys/kernel/printk
 4    4    1    7
 其中第一個“4”表示內核打印函數printk的打印級別,只有級別比他高的信息才能在控制台上打印出來,既 0-3級別的信息

2. 修改打印
 echo "新的打印級別  4    1    7" >/proc/sys/kernel/printk

3. 不夠打印級別的信息會被寫到日志中可通過dmesg 命令來查看

4. printk的打印級別

#define KERN_EMERG        "<0>"
#define KERN_ALERT        "<1>"
#define KERN_CRIT            "<2>"
#define KERN_ERR            "<3>"
#define KERN_WARNING  "<4>"
#define KERN_NOTICE      "<5>"
#define KERN_INFO            "<6>"
#define KERN_DEBUG      "<7>"

5、printk函數的使用

printk(打印級別“要打印的信息”)  //“打印級別“即上面定義的幾個宏

為什麼我用telnet不行,而用tty終端就行?

1. 內核的printk把信息打到哪裡去呢?這是在內核的命令行參數console=ttyXXX裡指定死了,比如console=ttySAC0表示printk的信息輸出到串口0
2. telnet上去之後,printf的輸出信息是輸出到一個“虛擬的終端”去的,你可以用ps命令看一下這個telnet對應的/bin/sh進程ID,ls  /proc/進程ID/fd -l 就可以知道這個虛擬的終端對應什麼文件。
  你可以看到0、1、2這3個文件都是對應一個“臨時生成的虛擬的文件”
3. 所以,內核的信息不可能在telnet界面顯示出來,你想看的話,可以為dmesg命令查看

系統消息日志

#ls /var/log

dmesg    lastlog  messages  wtmp

/var/log目錄下的20個Linux日志文件功能:

/var/log/messages — 包括整體系統信息,其中也包含系統啟動期間的日志。此外,mail,cron,daemon,kern和auth等內容也記錄在var/log/messages日志中。

/var/log/dmesg — 包含內核緩沖信息(kernel ring buffer)。在系統啟動時,會在屏幕上顯示許多與硬件有關的信息。可以用dmesg查看它們。

/var/log/auth.log — 包含系統授權信息,包括用戶登錄和使用的權限機制等。

/var/log/boot.log — 包含系統啟動時的日志。

/var/log/daemon.log — 包含各種系統後台守護進程日志信息。

/var/log/dpkg.log – 包括安裝或dpkg命令清除軟件包的日志。

/var/log/kern.log – 包含內核產生的日志,有助於在定制內核時解決問題。

/var/log/lastlog — 記錄所有用戶的最近信息。這不是一個ASCII文件,因此需要用lastlog命令查看內容。

/var/log/maillog /var/log/mail.log — 包含來著系統運行電子郵件服務器的日志信息。例如,sendmail日志信息就全部送到這個文件中。

/var/log/user.log — 記錄所有等級用戶信息的日志。

/var/log/Xorg.x.log — 來自X的日志信息。

/var/log/alternatives.log – 更新替代信息都記錄在這個文件中。

/var/log/btmp – 記錄所有失敗登錄信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。

/var/log/cups — 涉及所有打印信息的日志。

/var/log/anaconda.log — 在安裝Linux時,所有安裝信息都儲存在這個文件中。

/var/log/yum.log — 包含使用yum安裝的軟件包信息。

/var/log/cron — 每當cron進程開始一個工作時,就會將相關信息記錄在這個文件中。

/var/log/secure — 包含驗證和授權方面信息。例如,sshd會將所有信息記錄(其中包括失敗登錄)在這裡。

/var/log/wtmp或/var/log/utmp — 包含登錄信息。使用wtmp可以找出誰正在登陸進入系統,誰使用命令顯示這個文件或信息等。

/var/log/faillog – 包含用戶登錄失敗信息。此外,錯誤登錄命令也會記錄在本文件中。

Copyright © Linux教程網 All Rights Reserved