blueorange
V2EX  ›  Java

请问 tomcat 中的 catalina.out 文件过大怎么处理

  •  
  •   blueorange · Oct 27, 2017 · 6242 views
    This topic created in 3150 days ago, the information mentioned may be changed or developed.

    在生产环境中, tomcat 目录下面 catalina.out 文件过一阵子达到几 G 的量,请问怎么处理

    21 replies    2017-10-30 10:52:10 +08:00
    srx1982
        1
    srx1982  
       Oct 27, 2017
    删了。。。
    yidinghe
        2
    yidinghe  
       Oct 27, 2017   ❤️ 1
    1. 临时解决办法 echo "">catalina.out
    2. 长期解决办法:日志输出不要直接输出到 System.out ,而是要用日志框架比如 logback,而且配置框架的时候也不要输出到标准输出,而是用滚动文件。
    blueorange
        3
    blueorange  
    OP
       Oct 27, 2017
    @srx1982 有没有那种可以切片的,现在看日志都很不方便 是不是可以把 catalina.out 切分
    blueorange
        4
    blueorange  
    OP
       Oct 27, 2017
    意思是在生产环境中不使用 ConsoleAppender 这个?
    这个也是个解决办法哟。
    murmur
        5
    murmur  
       Oct 27, 2017
    写个脚本按日拆分就可以
    firemiles
        6
    firemiles  
       Oct 27, 2017 via Android
    logrotate
    hubert3
        7
    hubert3  
       Oct 27, 2017
    @yidinghe 滚动文件会不会调试就不方便了?
    yidinghe
        8
    yidinghe  
       Oct 27, 2017
    @hubert3 不会,你可以设成每日滚动,除非你去找 00:00 这时候的日志,否则你都知道在哪找。
    moe3000
        9
    moe3000  
       Oct 27, 2017
    用 cronlog 分割,已有的用 split 分割
    blueorange
        10
    blueorange  
    OP
       Oct 27, 2017
    @murmur 定时任务脚本吗?
    blueorange
        11
    blueorange  
    OP
       Oct 27, 2017
    @firemiles 这个我倒是不知道诶。
    blueorange
        12
    blueorange  
    OP
       Oct 27, 2017
    @hubert3 还蛮好调试的呀,你只要 tail -f 你那个滚动文件就可以看日志了。
    caiyongji
        13
    caiyongji  
       Oct 27, 2017
    zip 后删除
    wq2016
        14
    wq2016  
       Oct 27, 2017
    logrotate
    frank0718
        15
    frank0718  
       Oct 27, 2017
    tomcat/lib/log4j.properties 里面配置来自动 rotate

    # Define all the appenders
    log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina.out
    log4j.appender.CATALINA.Append = true
    log4j.appender.CATALINA.Encoding = UTF-8
    # Roll-over the log once per day
    log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
    log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
    log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
    blueorange
        16
    blueorange  
    OP
       Oct 27, 2017
    @frank0718 tomcat/lib/目录下面没有 log4j.properties 诶
    blueorange
        17
    blueorange  
    OP
       Oct 27, 2017
    @wq2016 谢谢 我已经配置了, 过几天看效果。。
    julyclyde
        18
    julyclyde  
       Oct 28, 2017
    Java 新人常见问题……唉
    blueHaw
        19
    blueHaw  
       Oct 28, 2017 via Android
    可以使用 log4j 作为默认日志按天或者大小切割
    ppwangs
        20
    ppwangs  
       Oct 28, 2017
    7.0 以上好像就支持 rotate 了吧。你们用的什么版本。
    peihanw
        21
    peihanw  
       Oct 30, 2017
    如果懒得配置 logging,可以试试这个小工具: https://github.com/peihanw/rotate
    // Howto compile: g++ -O2 -o rotate rotate.cc
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2801 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 12:43 · PVG 20:43 · LAX 05:43 · JFK 08:43
    ♥ Do have faith in what you're doing.