對于這些同學提出的問題, 以下回答均為個人經驗之談, 可能會有更好的解決方案, 不作標準答案;
程序之路任重道遠,望堅持學習,少年易老學難成,一寸光陰不可輕
Q1:多臺服務器上,運行期間會產生大量的錯誤日志,如何監(jiān)控錯誤?
1,多臺服務器??
以web項目舉例,問題的核心并不是'服務器'的量級,而且在多臺服務器上是否運行的是"同一項目".大部分情況,多臺服務器是為了減輕服務端的壓力存在的,這時多臺服務器共同執(zhí)行同一個Task,其日志輸出路徑是以日為單位的絕對路徑,所以找到問題并不是很費力的.
打個比方,一個Django框架的web項目,其中也存在爬蟲程序,日志文件情況如下:
所以,web項目用多臺服務器,并不會出現(xiàn),具體哪臺服務器出現(xiàn)了報錯情況,因為在代碼,環(huán)境,部署完全一致的情況下,出現(xiàn)了WARNING,可能是你代碼有bug,也可能是服務器上某個部署存在問題,統(tǒng)一修改即可解決.
如果是爬蟲項目,多臺服務器可能運行的項目也不一樣.那么思路也是一樣的,要區(qū)分哪臺服務器上的程序出現(xiàn)問題了.直接按照當時輸出日志時候的路徑,找到相應的文件位置即可.
(日志輸入位置要在項目config中配置好)
比如A服務器 輸出路徑為../log/serverA/today/0727test.log
B?../log/serverB/today/0727test.log
...
2運行期間會產生大量的錯誤日志
一個項目的運行,一定避免不了會輸出大量的信息,以供程序員參考:
日志等級由低到高:debug<info<warn<Error<Fatal;
生產模式下,最低等級為info;
一般情況下:輸出info的信息,均為你在代碼中想要看到目前結果的地方進行日志打印,此處看你的習慣,和信息的重要性;(關鍵處打印日志是一個程序員良好的習慣)
warn信息一般是不影響系統(tǒng)正常運行的警告信息,一般情況,此類也是可以寫代碼的時候,特定場景下添加警告信息(一般不會用),大部分情況是系統(tǒng)自動生成該類錯誤.
而error才是你真正需要關心的問題,因為此類錯誤會直接導致系統(tǒng)無法正常運行,或者直接崩潰.
處理方式當然是看解釋器的報錯信息了..
一般出現(xiàn)問題,第一反應應該是,服務器上把日志下載到本地.用notepad++等文本軟件打開,查找關鍵字為error的,具體問題具體解決即可.
3如何監(jiān)控錯誤溶推?
這個問題的核心是:你想主動讓程序告知你發(fā)生了什么,還是等到出現(xiàn)問題,直接翻看日志找到問題.
出現(xiàn)error,給你發(fā)個短信,或者郵件,這個應該不難吧..定時任務或者異步處理都可以的..具體解決方案,網上有很多監(jiān)控方式,可針對自己的項目進行學習即可..