【问题标题】:How to create a non-data gc.log file?如何创建非数据 gc.log 文件?
【发布时间】: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 文本文件而不是数据文件?

【问题讨论】:

    标签: java linux tomcat


    【解决方案1】:

    您的问题是 grep 将 GC 日志解释为二进制数据文件,它实际上是文本。如果您在 grep 上使用 -a 或 --text 参数,它会将其视为文本。

    grep -a gc.log-20161118

    【讨论】:

    • 这有所帮助,但仍需要很长时间。大约10秒。而另一个文件(大约是原来的四分之一)只需要不到一秒的时间。
    • 我认为 -a 的用法可能不正确。任何关于如何使日志文件成为非数据的指针都会很棒,因为上述 grep 有时会运行超过 30 秒。
    猜你喜欢
    • 2014-01-14
    • 1970-01-01
    • 2012-04-26
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多