V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blueorange
V2EX  ›  Java

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

  •  
  •   blueorange · 2017-10-27 14:22:21 +08:00 · 5491 次点击
    这是一个创建于 2563 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    21 条回复    2017-10-30 10:52:10 +08:00
    srx1982
        1
    srx1982  
       2017-10-27 14:28:55 +08:00
    删了。。。
    yidinghe
        2
    yidinghe  
       2017-10-27 14:29:51 +08:00   ❤️ 1
    1. 临时解决办法 echo "">catalina.out
    2. 长期解决办法:日志输出不要直接输出到 System.out ,而是要用日志框架比如 logback,而且配置框架的时候也不要输出到标准输出,而是用滚动文件。
    blueorange
        3
    blueorange  
    OP
       2017-10-27 14:30:16 +08:00
    @srx1982 有没有那种可以切片的,现在看日志都很不方便 是不是可以把 catalina.out 切分
    blueorange
        4
    blueorange  
    OP
       2017-10-27 14:31:25 +08:00
    意思是在生产环境中不使用 ConsoleAppender 这个?
    这个也是个解决办法哟。
    murmur
        5
    murmur  
       2017-10-27 14:38:24 +08:00
    写个脚本按日拆分就可以
    firemiles
        6
    firemiles  
       2017-10-27 14:42:57 +08:00 via Android
    logrotate
    hubert3
        7
    hubert3  
       2017-10-27 14:56:56 +08:00
    @yidinghe 滚动文件会不会调试就不方便了?
    yidinghe
        8
    yidinghe  
       2017-10-27 15:10:53 +08:00
    @hubert3 不会,你可以设成每日滚动,除非你去找 00:00 这时候的日志,否则你都知道在哪找。
    moe3000
        9
    moe3000  
       2017-10-27 15:36:34 +08:00
    用 cronlog 分割,已有的用 split 分割
    blueorange
        10
    blueorange  
    OP
       2017-10-27 16:05:04 +08:00
    @murmur 定时任务脚本吗?
    blueorange
        11
    blueorange  
    OP
       2017-10-27 16:05:26 +08:00
    @firemiles 这个我倒是不知道诶。
    blueorange
        12
    blueorange  
    OP
       2017-10-27 16:06:45 +08:00
    @hubert3 还蛮好调试的呀,你只要 tail -f 你那个滚动文件就可以看日志了。
    caiyongji
        13
    caiyongji  
       2017-10-27 17:13:27 +08:00
    zip 后删除
    wq2016
        14
    wq2016  
       2017-10-27 17:15:37 +08:00
    logrotate
    frank0718
        15
    frank0718  
       2017-10-27 17:46:14 +08:00
    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
       2017-10-27 20:52:45 +08:00
    @frank0718 tomcat/lib/目录下面没有 log4j.properties 诶
    blueorange
        17
    blueorange  
    OP
       2017-10-27 20:56:17 +08:00
    @wq2016 谢谢 我已经配置了, 过几天看效果。。
    julyclyde
        18
    julyclyde  
       2017-10-28 09:03:08 +08:00
    Java 新人常见问题……唉
    blueHaw
        19
    blueHaw  
       2017-10-28 13:32:38 +08:00 via Android
    可以使用 log4j 作为默认日志按天或者大小切割
    ppwangs
        20
    ppwangs  
       2017-10-28 17:51:59 +08:00
    7.0 以上好像就支持 rotate 了吧。你们用的什么版本。
    peihanw
        21
    peihanw  
       2017-10-30 10:52:10 +08:00
    如果懒得配置 logging,可以试试这个小工具: https://github.com/peihanw/rotate
    // Howto compile: g++ -O2 -o rotate rotate.cc
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 16:35 · PVG 00:35 · LAX 09:35 · JFK 12:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.