2025年1月2日 星期四 甲辰(龙)年 十月廿九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Java

Logback依赖配置

时间:02-06来源:作者:点击数:91

在IntelliJ IDEA中创建一个基于gradle的Java项目,然后添加依赖:

  • // https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
  • implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'

或:

  • implementation 'ch.qos.logback:logback-classic:1.2.3'

我们只需要依赖logback-classic即可,通过双击gradle命令:dependencies,如下:

在这里插入图片描述

从这里可知logback-classic库依赖了logback-core和slf4j-api,所以我们只需要依赖logback-classic即可。

代码:

  • import org.slf4j.Logger;
  • import org.slf4j.LoggerFactory;
  • public class Test {
  • private final static Logger logger = LoggerFactory.getLogger(Test.class);
  • public static void main(String[] args) {
  • logger.debug("Hello World!");
  • }
  • }

注意别导错包。运行结果如下:

  • 10:24:47.915 [main] INFO cn.android666.Test - Hello World!

如果需要对输出进行配置,则需要创建一个logback.xml文件来进行配置,此文件需要放到资源目录,在IntelliJ IDEA中可以这样快捷创建资源目录,在src目录上右击,如下:

在这里插入图片描述

然后会出现一个新建目录的对话框,双击main\resources即可创建出资源目录,如下:

在这里插入图片描述
在这里插入图片描述

然后在resources目录创建logback.xml,并输入如下内容:

  • <?xml version="1.0" encoding="UTF-8"?>
  • <configuration>
  • <!-- 控制台输出 -->
  • <appender name="STDOUT"
  • class="ch.qos.logback.core.ConsoleAppender">
  • <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>
  • <!-- 日志输出级别 -->
  • <root level="trace">
  • <appender-ref ref="STDOUT" />
  • </root>
  • </configuration>

再次运行程序,输出结果如下:

  • 09:40:04.683 [main] DEBUG android666.cn.Test - Hello World!

配置输出到文件:

  • <?xml version="1.0" encoding="UTF-8"?>
  • <configuration>
  • <!-- 控制台输出 -->
  • <appender name="STDOUT"
  • class="ch.qos.logback.core.ConsoleAppender">
  • <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>
  • <!--用于保存log到文件的Appender配置-->
  • <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  • <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  • <!-- 根据文件名称的模式,设置按天回滚 -->
  • <fileNamePattern>D:/logs/%d{yyyy-MM-dd}.log</fileNamePattern>
  • <!-- 最大历史天数,即保存多少天的日志文件 -->
  • <maxHistory>30</maxHistory>
  • </rollingPolicy>
  • <!-- 对记录事件进行格式化 -->
  • <encoder charset="UTF-8" class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  • <pattern>[%-5level] - %d{HH:mm:ss.SSS} [%thread] %logger{50} -- %msg%n</pattern>
  • </encoder>
  • </appender>
  • <!-- 日志输出级别 -->
  • <root level="trace">
  • <appender-ref ref="STDOUT" />
  • <appender-ref ref="FILE" />
  • </root>
  • </configuration>

设置Error级别的保存到一个单独的文件,即调用loger.error()进行输出的才会保存到一个指定的文件中:

  • <?xml version="1.0" encoding="UTF-8"?>
  • <configuration>
  • <!-- 控制台输出 -->
  • <appender name="STDOUT"
  • class="ch.qos.logback.core.ConsoleAppender">
  • <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>
  • <!--用于保存Bug的Appender配置-->
  • <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  • <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  • <!-- 过虑掉小于ERROR级别的日志,所有级别: TRACE < DEBUG < INFO < WARN < ERROR -->
  • <level>ERROR</level>
  • </filter>
  • <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  • <!-- 根据文件名称的模式,设置按天回滚 -->
  • <fileNamePattern>D:/bugs/%d{yyyy-MM-dd}.log</fileNamePattern>
  • <!-- 最大历史天数,即保存多少天的日志文件 -->
  • <maxHistory>30</maxHistory>
  • </rollingPolicy>
  • <!-- 对记录事件进行格式化 -->
  • <encoder charset="UTF-8" class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  • <pattern>[%-5level] - %d{HH:mm:ss.SSS} [%thread] %logger{50} -- %msg%n</pattern>
  • </encoder>
  • </appender>
  • <!-- 日志输出级别 -->
  • <root level="trace">
  • <appender-ref ref="STDOUT" />
  • <appender-ref ref="FILE" />
  • </root>
  • </configuration>
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门