linux查看日志 tomcat logs和docker logs

一.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"  掰灯

我的坑:当打印日志过多时,控制台会输出完后才会显示出来,这个效果和没有日志存在时是一个效果,可以考虑输出到文件查看

你可能感兴趣的:(linux查看日志 tomcat logs和docker logs)