解决Tomcat catalina.out 文件过大的问题

解决方式有以下两种:
1、修改tomcat的日志配置文件,配置输出日志级别
2、修改项目中工程文件logback的日志配置:输出在控制台的级别

一:改变日志输出级别:
方法一:一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。
可通过修改\Tomcat 8.0\conf\logging.properties日志配置文件来屏蔽掉这部分的日志信息。

1catalina.org.apache.juli.FileHandler.level = WARNING
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。

一般日志的级别有:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)

方法二:进行切割文件
日志切割:https://www.iyunv.com/forum.php?mod=viewthread&tid=404484&highlight=tomcat%2B

tomcat 日志禁用 :https://www.iyunv.com/forum.php?mod=viewthread&tid=348904&highlight=tomcat%2B日志

二、解决catalina.out日志超大问题
接下来考虑catalina.out怎么会这么大呢?查看里面记录了应用的所有日志信息。

Log4j
查看应用的log4j配置文件,发现输出到控制台的配置,target是System.out

而catalina.out会记录 System.out 与 System.err的信息

删除log4j中的输出控制台的日志配置,catalina.out中不再记录应用的日志。
日志输出级别:ALL、DEBUG、INFO、WARN、ERROR
这下它不会涨的那么快了。设置工程项目输出至控制台catalina.out日志的级别:

Log4j具体输出信息级别配置方法:http://blog.csdn.net/hamov/article/details/51673875

logback
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property resource="application.properties" />
    <property scope="context" name="LOCAL_LOG_FOLDER" value="/media/HDD1/webServers/logs/id5_id6_id7/" />
    <property scope="context" name="SUB_SYSTEM" value="cn-connetedonboard" />

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOCAL_LOG_FOLDER}/${SUB_SYSTEM}.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOCAL_LOG_FOLDER}/cn-connetedonboard.%d{yyyy-MM-dd}-%i.zip</FileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--<maxHistory>7</maxHistory>-->
        </rollingPolicy>
        <encoder>
            <!--<pattern>%d{HH:mm:ss} {%t} %-5level [cn-connetedonboard] %logger - %msg%n</pattern>-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss} {%t} %highlight(%-5level) [%X{vin}]  %logger{0}.%method:%L : %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!--控制控制台输出    -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>WARNING</level>
        </filter>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} {%t} %highlight(%-5level) [%X{vin}]  %logger{0}.%method:%L :  %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <root level="${logback.log.level}">
        <appender-ref ref="FILE" />
        <!--<appender-ref ref="CONSOLE" />-->
    </root>

</configuration>


————————————————
版权声明:本文为CSDN博主「严的博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_36586564/article/details/78550110

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想在脚本中删除`catalina.out`文件,可以将以下代码添加到示例脚本的循环中: ```bash # 删除catalina.out文件 catalina_files=($(find "$TOMCAT_LOG_DIR" -name "catalina.out")) for catalina_file in "${catalina_files[@]}"; do rm "$catalina_file" echo "删除文件: $catalina_file" done ``` 将上述代码添加到示例脚本的循环中,可以删除`catalina.out`文件。更新后的示例脚本如下: ```bash #!/bin/bash # 设置Tomcat日志目录 TOMCAT_LOG_DIR="/path/to/tomcat/logs" # 设置要删除的日志文件类型 LOG_FILE_TYPES=("catalina.out" "localhost_access_log.txt" "host-manager.log" "manager.log") # 设置保留的最近日志文件数量 KEEP_RECENT_FILES=5 # 删除旧的日志文件 for log_type in "${LOG_FILE_TYPES[@]}"; do # 找到该类型的所有日志文件 log_files=($(find "$TOMCAT_LOG_DIR" -name "$log_type")) # 确保保留最近的日志文件数量 if [[ ${#log_files[@]} -gt $KEEP_RECENT_FILES ]]; then # 按修改时间排序 sorted_files=($(ls -t "${log_files[@]}")) # 删除除最新的文件外的所有文件 for ((i = $KEEP_RECENT_FILES; i < ${#sorted_files[@]}; i++)); do rm "${sorted_files[$i]}" echo "删除文件: ${sorted_files[$i]}" done fi done # 删除catalina.out文件 catalina_files=($(find "$TOMCAT_LOG_DIR" -name "catalina.out")) for catalina_file in "${catalina_files[@]}"; do rm "$catalina_file" echo "删除文件: $catalina_file" done echo "清除Tomcat日志完成" ``` 请将`/path/to/tomcat/logs`替换为实际的Tomcat日志目录路径。保存并运行更新后的脚本,它将删除指定类型的旧日志文件,并删除`catalina.out`文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值