使用springboot框架时,它默认的日志框架是logback,当然它也支持slf4j的api。
所以我们在项目中可以直接使用slf4j。
例如:
Logger logger = LoggerFactory.getLogger(Test.class);
关于logback日志的配置文件
使用springboot时,默认首选的是在类路径下的logback-test.xml,当该文件找不到时,就会寻找logback.xml.
关于具体配置信息,可查看这篇博客传送门
下面是一个简单的例子:logback.xml
<?xml verison="1.0" encoding="UTF-8"?>
<!-- 根节点 scan表示是否支持动态更新属性,ScanPeriod表示检测属性的间隔时间,debug表示是否打印logback自身的日志-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 类似maven中的properties标签,可以定义一些属性值,用时直接引用${log_dir} -->
<property name="log_dir" value="/eureka" />
<property name="maxHistory" value="30" />
<!-- 使用appender标签设置一些日志输出模式,具体使用哪种输出模式需要看下面的logger标签配置 -->
<!-- 控制台输出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 设置输出日志的文字规则 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
</encoder>
</appender>
<!-- 滚动输出日志,可以对日志进行分割,例如:按时间,按大小 -->
<appender name="OutputByTime" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 日志文件名,路径自定 -->
<fileName>${log_dir}/config.log</fileName>
<!-- 日志是否追加到文件末尾,默认为true -->
<append>true</append>
<!-- 使用时间来分割文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 分割的文件名 -->
<fileNamePattern>${log_dir}/config-%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 存储的最大数量,这里存储的30天 -->
<maxHistory>${maxHistory}</maxHistory>
<!-- 在里面嵌套使用文件大小 -->
<TimebasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>5MB</maxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
</encoder>
</appender>
<!-- 使用文件大小来分割 -->
<appender name="OutputBySize" class="ch.qos.logback.core.rolling.RollingFileAppender">
<fileName>${log_dir}/config.log</fileName>
<rollingPolicy class="ch.qos.logback.core.roling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
</encoder>
</appender>
<!-- 具体选择使用哪种模式,root为全局的 level指定日志级别-->
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
</root>
<!-- 可以针对某些包,或者具体类来设定 -->
<logger level="INFO">
<appender-ref ref="OutputByTime"/>
</logger>
</configuration>