logback基本配置与使用

    xiaoxiao2023-10-13  135

    在投产项目中,日志的使用是必须的,一般情况下日志分两个,一个需要在控制台打印出来,这个方便开发的时候调试,一个需要把日志按日期保存,方便生产出问题的时候查询日志。logback实现了slf4j-api,使用也很简单,只需要在资源目录下配置一个logback.xml即可,系统启动的时候会默认读取这个日志配置文件。下面介绍一下具体的使用。

    依赖

    <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency>

    logback.xml配置

    具体配置如下,具体的功能都已经详细说明了,文件需要放在项目resources跟目录下

    <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="H:/study/backstudy/log"/> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- 过滤掉 TRACE 级别的日志--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>TRACE</level> </filter> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <!-- 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 过滤掉 TRACE 级别的日志--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>TRACE</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/TestWeb.log.%d{yyyy-MM-dd}.log</FileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!-- 日志输出级别 --> <root level="INFO"> <!--配置多个都会输出--> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </root> </configuration>

    使用

    public class Main { private final static Logger logger = LoggerFactory.getLogger(Main.class); public static void main(String[] args) { logger.info("这是一个测试"); } } 2019-05-25 12:55:13.120 [main] INFO com.zhan.design.Main - 这是一个测试

    也会在H:\study\backstudy\log\2019-05-25目录下创建一个TestWeb.log.2019-05-25.log文件,写入打印的内容

    最新回复(0)