Java日志框架--logback

文章目录

  • 1.Logback简介
  • 2.Logback中的组件
  • 3.Logback配置文件
  • 4.日志输出格式
  • 5.日志案例
    • 5.1 日志级别
    • 5.2 案例

1.Logback简介

	 Logback是由log4j创始人设计的又一个开源日志框架组件。 Logback当前分成三个模块:logback-core,logback-classic和logback-access。
	 logback-core是其他两个模块的基础模块。
	 logback-classic是log4j的一个改良技术,此外 logback-classic完整实现SLF4J API。使你可以很方便地更换成其它日志系统如log4j或JDK14Logging,logback-classic包含logback-core模块。
	 logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

2.Logback中的组件

Logger:日志的记录器,主要用于存放日志对象,也可以定义日志类型、级别
Appender:用于指定日志输出的目的地,目的地可以是控制台、文件、数据库等等。
Layout:负责把事件转换成字符串,格式化的日志信息的输出。在Logback中Layout对象被封装在encoder中,也就是说我们未来使用的encoder其实就是Layout。

3.Logback配置文件

Logback提供了3种配置文件:
logback.groovy
logback-test.xml
logback.xml
如果都不存在则采用默认的配置

4.日志输出格式

日志输出格式:
%-10level 级别 案例为设置10个字符,左对齐
%d(yyyy-MM-dd HH:mm:ss.SSS} 日期
%c 当前类全限定名
%M 当前执行日志的方法
%L 行号
%thread 线程名称
%m 或者%msg 信息
%n 换行

5.日志案例

5.1 日志级别

logback有5种级别的日志输出分别是trace < debug < warn < error ,通过信息打印,默认的日志级别是debug

5.2 案例

1)pom.xml 文件配置


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>com.form.examplegroupId>
    <artifactId>slf4jartifactId>
    <version>1.0-SNAPSHOTversion>

    <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
    properties>

    <dependencies>
        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>1.7.25version>
        dependency>
        
        <dependency>
            <groupId>ch.qos.logbackgroupId>
            <artifactId>logback-classicartifactId>
            <version>1.2.3version>
        dependency>
        
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
        dependency>
    dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <version>3.1version>
                <configuration>
                    <source>1.8source>
                    <target>1.8target>
                    <encoding>UTF-8encoding>
                configuration>
            plugin>
        plugins>
    build>
project>

2)logback.xml 文件配置


<configuration>
    
    <property name="pattern" value="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L %thread %m%n">property>
    
    <property name="logDir" value="/Users/chenzhenwei/Desktop/pro/target/classes">property>
    
    <appender name="fileAppender" class="ch.qos.logback.core.FileAppender">
        
        <file>${logDir}/logback.logfile>
        
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}pattern>
        encoder>
    appender>
    
    <appender name="roll" class="ch.qos.logback.core.rolling.RollingFileAppender">
        
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}pattern>
        encoder>
        
        <file>${logDir}/roll_logback.logfile>
        
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            
            <fileNamePattern>${logDir}/roll.%d{yyyy-MM-dd}.log%i.gzfileNamePattern>
            
            <maxFileSize>1KBmaxFileSize>
        rollingPolicy>
    appender>
    
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        
        <target>
            System.err
        target>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            
            <pattern>${pattern}pattern>
        encoder>

    appender>

    <appender name="consoleFilterAppender" class="ch.qos.logback.core.ConsoleAppender">
        <target>
            System.err
        target>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}pattern>
        encoder>
        
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            
            <level>ERRORlevel>
            
            <onMatch>ACCEPTonMatch>
            
            <onMisMatch>DENYonMisMatch>
        filter>
    appender>
    
    <root level="ALL">
        

        <appender-ref ref="consoleFilterAppender"/>
        
        
    root>
configuration>

3)Java代码

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SLF4JTest {
    @Test
    public void test() {
        Logger logger = LoggerFactory.getLogger(SLF4JTest.class);
        logger.trace("trace信息");
        logger.debug("debug信息");
        logger.info("info信息");
        logger.warn("warn信息");
        logger.error("error信息");
    }
}

你可能感兴趣的:(Java基础,java,logback,log4j)