日志接口有两类,
Commons Logging (JCL)
Simple Logging Facade for Java (SLF4J)
热门的Logback是基于SLF4J实现的。
所以要使用Logback首先需要添加3个依赖,去maven仓库搜一下,用maven加载就好。
= = = = = = = = = = = = = = = = = = = = = = = = = Maven仓库 = = = = = = = = = = = = = = = = = = = = = = = = = =
然后我们可以通过一个logback.xml
文件来配置logback一些东西,文件放在/src/main/resources
下,这是一份样例。
language-xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- CONSOLE :表示当前的日志信息是可以输出到控制台的。 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <!--输出流对象 默认 System.out 改为 System.err--> <target>System.out</target> <encoder> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c [%thread] : %msg%n</pattern> <charset>utf-8</charset> </encoder> </appender> <!-- File是输出的方向通向文件的 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> <charset>utf-8</charset> </encoder> <!--日志输出路径--> <file>C:/Users/kmo/IdeaProjects/JAVA-DataSt/DataSt/src/main/resources/Log/data.log</file> <!-- 指定日志文件拆分和压缩规则--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--通过指定压缩文件名称,来确定分割文件方式--> <fileNamePattern>C:/Users/kmo/IdeaProjects/JAVA-DataSt/DataSt/src/main/resources/Log/log-%d{yyyy-MM-dd}.log%i.gz</fileNamePattern> <!--文件拆分大小--> <maxFileSize>1MB</maxFileSize> </rollingPolicy> </appender> <!-- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR(只有大于等于这个级别的才会被记录) | ALL 和 OFF , 默认debug <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。 --> <root level="ALL"> <!-- 注意:如果这里不配置关联打印位置,该位置将不会记录日志--> <appender-ref ref = "CONSOLE"/> <appender-ref ref="FILE" /> </root> </configuration>
接着这样在代码中引入logback日志输出器
language-java 1 2 3 4 5 6 7 8 9 10 11 import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Test{ public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(""); logger.info("This a info message"); logger.warn("This a warning message"); } }