我看到我的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文本文件,而不是一个数据文件产生的?
===========解决方案如下:
这里的问题是,grep将GC日志解释为二进制数据文件,它实际上是文本。如果您在grep上使用-a或–text参数,它会将其视为文本。
grep -a a gc.log-20161118