Slf4J+Logback入门

log4j

是目前最流行的java开源日志处理框架 , 是Apache的子项目。
官方网站:https://logging.apache.org/log4j/1.2/index.html

log4j2

是对Log4j 的升级版本,参考了logback 的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升。
官方网站: https://logging.apache.org/log4j/2.x/index.html

logback

是由log4j创始人设计的另一个开源日志组件。
官方网站: http://logback.qos.ch/

slf4j

是java简单日志门面或各种各样日志框架的抽象(例如logging,logback、log4j),它允许终端用户在项目部署时插入真正所需要的日志框架
官方网站:https://www.slf4j.org/

pom依赖

   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.5</version>
   </dependency>
   <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-core</artifactId>
       <version>1.0.11</version>
   </dependency>
   <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <version>1.0.11</version>
   </dependency>

示例

// 第一种,直接声明一个对象
public class Slf4JTest {
    private static final Logger logger = LoggerFactory.getLogger(Slf4JTest.class);
    public static void main(String[] args) {
        logger.info("Hello,tese, this is a line of log message logged by Logback");
    }
}

logback配置

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

<!-- 配置文件修改时重新加载,默认true  scanPeriod 属性来指定其他扫描周期。以毫秒,秒,分钟或小时为单位指定值-->
<configuration scan="true" scanPeriod="30 seconds">

    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="PATH" value="logs"></property>
    <property name="PROJECT" value="flinkStudy"></property>
    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <!-- 输出日志记录格式 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{100}) - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 第一个文件输出,每天产生一个文件 -->
    <appender name="FILE1" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 输出文件路径+文件名 -->
            <fileNamePattern>${PATH}/${PROJECT}-%d{yyyyMMdd}.log</fileNamePattern>
            <!-- 保存30天的日志 -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <!-- 输出日志记录格式 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{100} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 第二个文件输出,每天产生多个文件 -->
    <appender name="FILE2" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 输出文件路径+索引+文件名 -->
            <fileNamePattern>${PATH}/${PROJECT}-%d{yyyyMMdd}.%i.log</fileNamePattern>
            <!-- 保存30天的日志 -->
            <maxHistory>30</maxHistory>
            <!-- 单个文件大小 -->
            <maxFileSize>100MB</maxFileSize>
            <!-- 所有文件总大小 -->
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <!-- 输出日志记录格式 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{100} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 第三个文件输出,累计产生多个文件 -->
    <appender name="FILE3" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${PATH}/${PROJECT}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <!-- 表示重命名日志文件时遵循的模式。它必须包含字符串*%i * -->
            <fileNamePattern>${PATH}/${PROJECT}.%i.log.zip</fileNamePattern>
            <!-- 窗口索引的下限 -->
            <minIndex>1</minIndex>
            <!-- 窗口索引的上限 -->
            <maxIndex>10</maxIndex>
        </rollingPolicy>
        <!--查看当前活动文件的大小,超过指定大小会触发当前活动文件滚动-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <!--活动文件大小-->
            <maxFileSize>10MB</maxFileSize>
        </triggeringPolicy>
        <encoder charset="UTF-8">
            <!-- 输出日志记录格式 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{100} - %msg%n</pattern>
        </encoder>
    </appender>


    <!-- 设置日志输出级别 -->
    <root level="ERROR">
        <appender-ref ref="CONSOLE"/>
    </root>
    <!-- 设置包及其日志级别,不区分大小写-->
    <!-- TRACE<DEBUG<INFO<WARN<ERROR,默认DEBUG -->
    <logger name="com.leo" level="INFO">
        <appender-ref ref="FILE1"/>
    </logger>


</configuration>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跳舞 D 猴子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值