根据时间戳将多个日志文件合并为一个日志文件

时间:2015-12-21 14:06:55

标签: shell logging

我正在尝试找到一个快速合并来自2个应用程序服务器的2个日志文件的解决方案。 日志文件是这样的:

00:00:00,028 DEBUG [com.acme.productionservice...

我想根据时间戳打印一行日志文件或其他例如:

如果文件一有两行:

00:00:00,028 DEBUG [com.acme.productionservice...
00:00:00,128 DEBUG [com.acme.productionservice...

和文件二有这3行:

00:00:00,045 DEBUG [com.acme.productionservice...
00:00:00,100 DEBUG [com.acme.productionservice...
00:00:00,150 DEBUG [com.acme.productionservice...

输出应为

00:00:00,028 DEBUG [com.acme.productionservice...   (file 1)
00:00:00,045 DEBUG [com.acme.productionservice...   (file 2)
00:00:00,100 DEBUG [com.acme.productionservice...   (file 2)
00:00:00,128 DEBUG [com.acme.productionservice...   (file 1)
00:00:00,150 DEBUG [com.acme.productionservice...   (file 2)

我目前知道的唯一原因是使用     cat file1文件|分类 但这对于gb的日志来说非常慢 我需要读取2个文件并比较时间戳并决定要打印的内容。

1 个答案:

答案 0 :(得分:2)

我最后使用

sort -m 

我还使用了一个技巧来了解日志来自哪个日志文件

for a in *.log ; do 
    awk  '$0=FILENAME" "$0' $a > $a.log
do
sort -m -k 2 *.log.log