一.tomcat 日志
通常情况下日志文件放在tomcat目录logs目录中,那么我们首先需要找到文件位置
cd /**/**/tomcat/logs
linux 中常用 cat(整个文件), tail(从文件结尾开始), head(从文件开头开始) ,sed(时间段内) , grep (区域内查询出符合条件) , split (分割) , >> (输出到指定文件)这些方式的命令对日志文件进行操作
譬如说:
查看日志文件
cat catalina.out
当文件过大时, cat catalina.out 显得格外乏力,仍想要使用可以考虑用spilt分割成小文件
查看日志文件结尾1000行
tail -n 1000 catalina.out
如果是tail -f catalina.out 就可以变成打印实时日志, 不难看出-f 则是"实时"的意思;
tail 命令及其以上命令形式 还有更多实现多样功能的参数,不一一指出
查看日志文件开头1000行
head -n 1000 catalina.out
查看指定时间段内
sed -n '/28-Feb-2022 10*/,/28-Feb-2022 11*/p' catalina.out
坑坑坑!!!,可以看出使用了*号,当我们使用28-Feb-2022 10:23:55时,如果在这一秒没有日志,那么就会打不出日志
还有一点需要注意:sed中填写的时间格式与日志文件中时间格式保持一致,附上我的格式:
grep查找领取两字
cat catalina.out | grep ‘领取’
tail -f 1000 catalina.out | grep '领取'
>> 输出到文件
cat catalina.out | grep ‘领取’ >> 20220228.log
tail -n 1000 catalina.out >> 20220228.log
split分割文件,每个文件100M
split -b 100M -d --verbose catalina.out 20220228x.out
二:docker日志
容器名为 掰灯 举例
docker logs [OPTIONS] 掰灯
当我们需要
打印 掰灯 容器里的所有日志
docker logs 掰灯
-f 依然可以打印实时信息
打印所有并且实时监控
docker logs -f 掰灯
tail打印结尾100行,-f 同理
docker logs --tail 100 -f 掰灯
当我们需要
打印指定时间段的日志
docker logs --since="2022-01-12T9:00:00" --until "2022-01-12T9:40:00" 掰灯
当我们明确了一个字符串 例如"摔倒次数" 需要查询打印的时候
docker logs -f 掰灯 | grep "摔倒次数"
docker logs --tail 100 -f 掰灯 | grep "摔倒次数"
grep "摔倒次数" 对 | 前面 的区域进行查询
当我们需要下载到本地的时候
1.可以linux上选中 右键到文本编辑器
2. 使用 >> /bd/bd.log 将打印出的日志输出到 根目录下的bd/bd.log文件中
例如 将 2022年1月12日 9点-9点40分的日志输出到 bd/bd.log
docker logs --since="2022-01-12T9:00:00" --until "2022-01-12T9:40:00" 掰灯 >> /bd/bd.log
分享一些常用:
打印最近30分钟:
docker logs --since 30m 掰灯
查看某时间之后的日志:
docker logs -t --since="2022-03-09T13:23:37" 掰灯