2016-11-25 101 views
0

我看到我的gc.log文件是數據文件,而其他日誌文件是ASCII文本。如何創建非數據gc.log文件?

由於我無法grep通過非gc.log文件。

$ pwd 
/app/tomcat7/logs 


$ du -hsmc *log* | sort -n 

50 access_log2016-11-21.log 
74 access_log2016-11-25.log 
79 access_log2016-11-24.log 
300 gc.log-20161118 
418 gc.log-20161119 
542 gc.log-20161120 



$ file access_log2016-11-24.log gc.log-20161118 
access_log2016-11-24.log: ASCII text 
gc.log-20161118:   data 



$ time grep a access_log2016-11-24.log | wc -l 
426520 

real 0m0.888s 
user 0m0.740s 
sys 0m0.150s 



$ time grep a gc.log-20161118 
Binary file gc.log-20161118 matches 

real 0m9.574s 
user 0m9.278s 
sys 0m0.274s 

您可以看到在gc.log文件中grep花費的時間更長,並且它不返回有用的結果。

參數打印GC進gc.log文件-Xloggc:/app/tomcat7/logs/gc.log

如何確保gc.log文件爲ASCII文本文件,而不是一個數據文件產生的?

回答

0

這裏的問題是,grep將GC日誌解釋爲二進制數據文件,它實際上是文本。如果您在grep上使用-a或--text參數,它會將其視爲文本。

grep -a a gc.log-20161118

+0

這雖然有幫助,但仍需要很長時間。大約10秒。而另一個文件(大小約爲四分之一)則不到一秒鐘。 – user2250246

+0

我想 - 用法可能不正確。關於如何使日誌文件非數據的任何指針都會很棒,因爲上面的grep有時會超過30秒。 – user2250246