1 Star 0 Fork 0

AMeT/chainsaw

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Chainsaw - Cut large log file into small pieces

chainsaw 可以帮助你把数个 GB 大小的单一日志文件按日期切分,以便充分释放一些文本搜索工具的多线程能力。

作者希望你永远碰不上使用它的场景,但如果你真的倒霉了,那么它应该是有点用的。

$ chainsaw --help

usage: chainsaw [-h|--help] [--not-before <integer>] [--not-after <integer>]
                [-c|--chunk-size <integer>] -f|--file "<value>" [-o|--output
                "<value>"] [--dry-run]

                Cut large log file into small pieces, version 1.0.0

Arguments:

  -h  --help        Print help information
      --not-before  Ignore logs before, format 20230908
      --not-after   Ignore logs after, format 20230908
      --chunk-size  Max lines per file. Default: 50000
  -f  --file        Original log file
  -o  --output      Output directory. Default: cut/
      --dry-run     No file will be written

日志中文本的数量会影响最终文件的大小。作为参考,在某些编辑器中,20000 行(约 2.5 MB)以上的文件可能无法正确地高亮字符,50000 行(约 6 MB)以上的文件可能无法正确地显示行号。 chainsaw 默认设置 50000 行的软上限,即每个切分文件最多 50000 行,但实际上会尽量保证同一条日志不会被分割到两个文件中(例如堆栈信息),因此一般会超过这个值。

$ chainsaw --dry-run -f analyze.log

Running in dry-run mode, no file will be written
cut/2023-06-16.log saved (660 lines)
cut/2023-06-19.log saved (166 lines)
...
cut/2023-08-04.22.log saved(820 lines)

20 lines dropped
14042641 lines saved
0 lines passed
14042661 lines in given file

从今天起,检查 /etc/logrotate.d/ 目录下的配置,看看 logrotated 有没有运行。 看看代码的日志部分有没有配置 RollingFileAppender 或者接入什么 Cloud-Based Log Service。 特别地,见到谁用 nohup *** > app.log 2>&1 & 就揍他。

空文件

简介

Cut large log file into small pieces 展开 收起
Go 等 2 种语言
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/amet/chainsaw.git
git@gitee.com:amet/chainsaw.git
amet
chainsaw
chainsaw
master

搜索帮助

Cb406eda 1850385 E526c682 1850385