logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
scan:为true时,根据scanPeriod设置的时间来自动重新加载当前上下文配置(不指定时间单位时默认为毫秒)
debug:为true时,输出logback内部日志信息
-->
<configuration scan="true" scanPeriod="10 seconds">
<!-- 上下文名称 -->
<contextName>test</contextName>
<!-- 上下文属性-变量,使用${}引用 -->
<property name="logback.logs.path" value="C:/logback_log/logs/" />
<!-- 获取时间戳 -->
<timestamp key="timestamp" datePattern="yyyyMMdd"/>
<!-- 控制台日志输出器 -->
<appender name="out-console" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="UTF-8">
<!--
%level:日志级别
%date:日期输出{输出格式}
%logger:日志输出位置
%msg:日志输出内容
%n:换行
${timestamp}:获取时间戳
-->
<pattern>
日志级别:%level,时间:%date{yyyy-MM-dd HH:mm:ss},出处:%logger,内容:%msg%n
</pattern>
</encoder>
</appender>
<!-- 滚动文件日志输出器 -->
<appender name="out-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>${logback.logs.path}/logfile_%d{yyyyMMdd}.log</fileNamePattern>
<!-- 日志数量,超过15就清除 -->
<maxHistory>15</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>
日志级别:%level,时间:%date{yyyy-MM-dd HH:mm:ss},出处:%logger,内容:%msg%n
</pattern>
</encoder>
</appender>
<!-- 普通Logger:局部配置,针对特定的某个类来配置 -->
<!-- 当没有指定level时,默认使用root的level级别 -->
<logger name="com.test" level="DEBUG">
<!-- 使用以下输出器 -->
<appender-ref ref="out-console" />
<appender-ref ref="out-file" />
</logger>
<!-- 根logger:全局配置 -->
<root level="INFO">
<!-- 使用以下输出器 -->
<appender-ref ref="out-console" />
<appender-ref ref="out-file" />
</root>
</configuration>
使用
package com.td;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
static Logger logger = LoggerFactory.getLogger(Main.class);
/**
* 日志常用级别输出:error > warn > info > debug > all
*/
public static void main(String[] args) {
logger.trace("Main-trace级别");
logger.debug("Main-debug级别");
logger.info("Main-info级别");
logger.warn("Main-warn级别");
logger.error("Main-error级别");
}
}