Logback

2 篇文章 0 订阅

解决两个问题:

1、日志文件先按日期分割,再按指定大小分割;

2、日志输出到catalina.out;

 

1、日志输出到catalina.out

在logback.xml里如下配置后就能输出到console里,

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c:%L KEY:%X{_TRACE_KEY}] %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console"/>
    </root>
</configuration>

 

 

然后tomcat的启动脚本catalina.sh(catalina.bat)里有一句(默认就是这样)

 

if [ -z "$CATALINA_OUT" ] ; then
  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi

于是就能输出到catalina.out文件里了。


 

 

 

2、logback.xml

 

可参见:

http://aub.iteye.com/blog/1103685

http://blog.csdn.net/jiaolong724/article/details/50608089

logback有两个常用的appender

ConsoleAppenderRollingFileAppender),分别将日志输出到控制台和文件,两者可同时配置。

RollingFileAppender有两种策略

RollingPolicyTriggeringPolicy),分别表示滚动策略,和滚动触发策略。

RollingPolicy的默认实现有TimeBasedRollingPolicy和FixedWindowRollingPolicy

TriggeringPolicy的默认实现有TimeBasedRollingPolicy和SizeBasedTriggeringPolicy

其中,TimeBasedRollingPolicy既是RollingPolicy也是TriggeringPolicy,不能和其他的RollingPolicy或TriggeringPolicy混用;但是,可以以组合的方式和TimeBasedFileNamingAndTriggeringPolicy进行搭配使用,以实现先按日期分割,再按大小分割的效果。

FixedWindowRollingPolicy和SizeBasedTriggeringPolicy可以搭配使用,起到按文件大小进行滚动的效果。

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c:%L KEY:%X{_TRACE_KEY}] %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    
    <!-- 先按时间,再按大小 -->
    <appender name="app" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/app.%d{yyyy-MM-dd-}-%i.log</fileNamePattern>
            <MaxHistory>100</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>50MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c:%L KEY:%X{_TRACE_KEY}] %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    
    <!-- 仅按时间 -->
    <appender name="timeBasedRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>[%-5level][%date] [%thread][KEY:%X{_TRACE_KEY}] --%msg--[%M][%F{16},%L]%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    
    <!-- 仅按大小 -->
    <appender name="sizeBaseRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>logs/app.%i.log</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>100</maxIndex>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>100MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>[%-5level][%date] [%thread][KEY:%X{_TRACE_KEY}] --%msg--[%M][%F{16},%L]%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender> 
    <root level="info">
        <appender-ref ref="app"/>
        <!--不输出到catalina.out里-->
        <!--<appender-ref ref="console"/>-->
    </root>
</configuration>

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值