Logback实践

来源:互联网 发布:东宫番外清风知我意 编辑:程序博客网 时间:2024/05/20 22:04


前提: 采用Maven pom.xml构建依赖


一. pom.xml

<dependencies><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.3</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.5</version></dependency></dependencies>

二. logback.xml

<configuration><!-- 负责控制台输出的appender --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- 临界过滤器,此处只接受INFO级别以上的日志输出 --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><!-- 定义日志输出的格式 --><encoder><pattern><!-- %d{HH:mm:ss:SSS}: 输出时间,  %thread: 输出线程, %-5level: 输出日志级别, -5表示左对齐,如果level的长度不足5,在右边添加空格; %logger : 输出日志的logger, 可以设置logger的长度, 如%logger{n}; %msg : logger输出的信息; %n : 换行 -->%d{HH:mm:ss:SSS} [%thread] %-5level %logger - %msg%n</pattern></encoder></appender><!-- 负责输出错误信息到指定文件的appender --><appender name="ERROR_FILE" class="ch.qos.logback.core.FileAppender"><file>test-error.log</file><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder><pattern>%d{HH:mm:ss:SSS} [%thread] %-5level %logger - %msg%n</pattern><charset>UTF-8</charset></encoder></appender><!-- 滚动输出日志,根据日期生成对应的日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${catalina.base}/logs/mylog.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志的格式可以是.log, 压缩格式为.log.gz --><fileNamePattern>${catalina.base}/logs/mylog.%d{yyyy-MM-dd}.log.gz</fileNamePattern><!-- 最大文件保存日期, 30天之前的文件会被清除 --><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>%d{HH:mm:ss:SSS} [%thread] %-5level %logger - %msg%n</pattern><charset>UTF-8</charset></encoder></appender><!-- 定义指定路径下的logger的最低日志级别 --><logger name="cn.ray.logback" level="INFO"/><root level="DEBUG"><appender-ref ref="STDOUT" /><appender-ref ref="FILE"/><appender-ref ref="ERROR_FILE"/></root></configuration>
三. java code
<pre name="code" class="java">package cn.ray.logback;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class LogbackDemo1 {private static final Logger logger = LoggerFactory.getLogger(LogbackDemo1.class);public static void main(String[] args) {logger.trace("======trace");logger.debug("======debug");logger.info("======info");logger.warn("======warn");logger.error("======error");}}

运行结果:

16:28:18:277 [main] INFO  cn.ray.logback.LogbackDemo1 - ======info16:28:18:281 [main] WARN  cn.ray.logback.LogbackDemo1 - ======warn16:28:18:281 [main] ERROR cn.ray.logback.LogbackDemo1 - ======error


0 0