【发布时间】:2016-11-25 21:17:00
【问题描述】:
我看到我的 gc.log 文件是数据文件,而其他日志文件是 ASCII 文本。
因此,我无法通过非 gc.log 文件进行 grep。
$ 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 文本文件而不是数据文件?
【问题讨论】: