记录日志logback

导入依赖

<?xml version="1.0" encoding="UTF-8"?>
<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.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>juc_demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>15</maven.compiler.source>
        <maven.compiler.target>15</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
    </dependencies>

</project>

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration
        xmlns="http://ch.qos.logback/xml/ns/logback"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback logback.xsd">
    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<!--    %c 输出logger名称-->
<!--    %C 输出类名-->
<!--    %d{HH:mm:ss.SSS} 表示输出到毫秒的时间-->
<!--    %t 输出当前线程名称-->
<!--    %-5level 输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0-->
<!--    %logger 输出logger名称,因为Root Logger没有名称,所以没有输出-->
<!--    %msg 日志文本-->
<!--    %n 换行-->
<!--    其他常用的占位符有:-->
<!--    %F 输出所在的类文件名,如Log4j2Test.java-->
<!--    %L 输出行号-->
<!--    %M或%method 输出所在方法名-->
<!--    %l 输出完整的错误位置, 包括类名、方法名、文件名、行数-->
<!--    %p 该条日志的优先级-->
<!--    replace(p ){r, t}   p 为日志内容,r 是正则表达式,将p 中符合r 的内容替换为t  例如, "%replace(%msg){'\s', ''}"-->
<!--    caller{1}表示调用层次深度=》1表示调用层-->
    <property name="CONSOLE_LOG_PATTERN" value="%highlight(%date{yyyy-MM-dd HH:mm:ss.SSS}) %boldYellow([%thread]) %highlight([%-5level])   %boldGreen(%caller{2}) %msg%n"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>
    <logger name="c" level="debug" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>
    <root level="ERROR">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

使用例子

@Slf4j(topic = "c")
public class CreateThread {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
       /**
        Runnable runnable = () -> log.debug("begin...");
        Thread  t1= new Thread(runnable, "t1");
        log.debug("main");
        t1.start();
         */
       FutureTask<Integer> task= new FutureTask<>(()->{
            log.debug("hello");
            return 100;
        });
       new Thread(task,"task").start();
        Integer result = task.get();
        log.debug("结果是:{}",result);


    }

}
上一篇:Spring Boot 3.日志


下一篇:logback-spring.xml