前言
这是一篇水文,仅记录下。
内容简介
下面内容,搬运自上面手册。
通过如下的三个步骤可以启用 logback 来记录日志:
- 配置 logback 环境。
- 如果你想在每个类中打印日志,那么你需要将当前类的全称或者当前类当作参数,调用
org.slf4j.LoggerFactory.getLogger()
方法。 - 使用实例 logger 来调用不同的方法来打印日志。例:debug(),info(),warn(),error()。通过这些方法将会在配置好的 appender 中输出日志。
Logback 构建在三个主要的类上:Logger,Appender 和 Layouts。这三个不同类型的组件一起作用能够让开发者根据消息的类型以及日志的级别来打印日志。
- 有选择的启用或者禁用日志的输出只是 logger 的一部分功能。打印的方法决定的日志的级别。如果一条的日志的打印级别大于 logger 的有效级别,该条日志才可以被打印出来。
- logback 允许日志在多个地方进行输出。站在 logback 的角度来说,输出目的地叫做 appender。appender 包括console、file、remote socket server、MySQL、PostgreSQL、Oracle 或者其它的数据库、JMS、remote UNIX Syslog daemons 中。
- 通常,用户既想自定义日志的输出地,也想自定义日志的输出格式。通过给 appender 添加一个 layout 可以做到。layout 的作用是将日志格式化,而 appender 的作用是将格式化后的日志输出到指定的目的地。
logback 允许你重新定义日志的行为而不需要重新编译代码,你可以轻易的禁用调应用中某些部分的日志,或者将日志输出到任何地方。
- logback 的配置文件非常的灵活,不需要指定 DTD 或者 xml 文件需要的语法。但是,最基本的结构为
<configuration>
元素,包含 0 或多个<appender>
元素,其后跟 0 或多个<logger>
元素,其后再跟最多只能存在一个的<root>
元素。基本结构图如下: - 通过
<logger>
标签来过 logger 进行配置,一个<logger>
标签必须包含一个 name 属性,一个可选的 level 属性,一个可选 additivity 属性。additivity
的值为 true 或 false。level
的值为 TRACE,DEBUG,INFO,WARN,ERROR,ALL,OFF,INHERITED,NULL。当level
的值为 INHERITED 或 NULL 时,将会强制 logger 继承上一层的级别。 <logger>
元素至少包含 0 或多个<appender-ref>
元素。每一个 appender 通过这种方式被添加到 logger 上。与 log4j 不同的是,logbakc-classic 不会关闭或移除任何之前在 logger 上定义好的的 appender。
示例演示
package io.github.da1234cao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class APP {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(APP.class);
logger.info("Hello world.");
}
}
<configuration>
<appender name="LOGBACKTEST" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logbacktest.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</layout>
</appender>
<root level="DEBUG">
<appender-ref ref="LOGBACKTEST" />
</root>
</configuration>