查看tomcat日志

例82

需求:写一个截取tomcat catalina.out日志的脚本
tomcat实例t1-t4

# find  /opt/TOM/   -name  catalina.out
/opt/TOM/t1/logs/catalina.out
/opt/TOM/t3/logs/catalina.out
/opt/TOM/t4/logs/catalina.out
/opt/TOM/t2/logs/catalina.out

要求:

  1. 这个脚本可以取tomcat实例t1-t4的日志
  2. 这个脚本可以自定义取日志的起始点 ,比如取今天早上10点之后到现在的数据
  3. 这个脚本可以自定义取日志的起始点和终点,比如取今天早上9点到晚上8点的数据
    catalina.out 日志内容
Oct 29, 2018 01:52:24 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Oct 29, 2018 01:52:24 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Oct 29, 2018 01:52:24 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2102 ms
#!/bin/bash
#这个脚本用来查看Tomcat日志
#作者:xzm
#日期:2019-12-18
LANG=en
logfile="/opt/TOM/$1/logs/catalina.out"
#将当天的英文月、数字日期、数字年作为变量赋值给d_mdy
d_mdy=`date "+%b %d, %Y"`
#判断参数个数
if [ $# -ne 2 ] && [ $# -ne 3 ]
then
    echo "你提供的参数个数不对,请提供2个或者3个参数。例:sh $0 t1 08:01:00 14:00:00" 
    exit 1
fi
#判断第一个参数是否符合要求
if ! echo $1|grep -qE '^t1$|^t2$|^t3$|^t4$'
then
    echo "第一个参数必须是t1、t2、t3或t4"
    exit 1
fi 
#判断时间有效性
judge_time()
{
    date -d "$1" +%s &>/dev/null
    if [ $? -ne 0 ]
    then
        echo "你提供的时间$1格式不正确"
        exit 1
    fi
}
#将24小时制时间转换为12小时
tr_24_12()
{
    date -d "$1" +%r
}
#判断提供的时间点是否在日志中出现
judge_time_in_log()
{
    if ! grep -q "$d_mdy $(tr_24_12 $1)" $logfile
        then
            echo "你提供的时间$1在日志$logfile中不曾出现,请换一个时间点"
            exit 1
        fi    
}
#判断第2个参数是否合法
judge_time $2
#判断起始时间点是否出现在日志里
judge_time_in_log $2
#如果提供第3个参数
if [ $# -eq 3 ]
then
    #判断第3个参数是否合法
    judge_time $3
    #判断起始时间是否早于结束时间
    t1=`date -d "$2" +%s`
        t2=`date -d "$3" +%s`
        if [ $t2 -lt $t1 ]
        then
            echo "你提供的时间$2$3要晚,应该把早的时间放到前面"
            exit
        fi
        #判断提供的结束时间点是否出现在日志中
        judge_time_in_log $3
fi
#取起始时间所在行行号
begin_n=`grep -n "$d_mdy $(tr_24_12 $2)" $logfile|head -1|awk -F ':' '{print $1}'`
#取结束时间所在行行号,并用sed截取日志内容
if [ $# -eq 3 ]
then
    n=`grep -n "$d_mdy $(tr_24_12 $3)" $logfile|tail -1|awk -F ':' '{print $1}'`
    #结束日期所在行的下一行才是日志的内容
    end_n=$[$n+1]
    sed -n "$begin_n,$end_n"p $logfile
else
    sed -n "$begin_n,$"p $logfile
fi
查看 Tomcat 日志有多种方式,以下为你详细介绍: ### 在 Linux 系统中查看 Tomcat 日志通常位于安装目录的 logs 子目录下,常见日志文件包括: - `catalina.out`:主日志文件,记录启动、运行及错误信息。 - `localhost.log`:应用部署和上下文加载日志。 - `localhost_access_log.txt`:HTTP 访问日志(按日期分割)。 查看方法如下: - **查看启动日志**: ```bash # 先切换到日志目录 cd /usr/local/tomcat/apache-tomcat-8.5.41/logs/ # 实时查看日志 tail -f catalina.out # 或者指定查看多少行 tail -200 catalina.out ``` `tail` 命令从指定点开始将文件写到标准输出,使用 `-f` 选项可以方便地查阅正在改变的日志文件,它会把文件里最尾部的内容显示在屏幕上,并且不断刷新,以看到最新的文件内容 [^1][^3]。 ### 使用 Kibana 查看 如果公司搭建了 Kibana 的日志系统,使用 Kibana 查看日志会更加方便高效。相较于传统通过 SSH 到服务器,用 `vi` 查看查看系统日志或下载到本地用 `logview` 查看搜索的方式,Kibana 能显著提升日志查看的效率 [^2]。 ### 在 IDEA 中查看 遇到 Tomcat 报错时,若提示找日志,通常可在 `resource` 目录下添加 `logging.properties` 文件,内容如下: ```plaintext handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler ############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################ org.apache.juli.FileHandler.level = FINE org.apache.juli.FileHandler.directory = ../logs org.apache.juli.FileHandler.prefix = error-debug. java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ``` 以此方式来辅助查看日志 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值