简介
LogBack是由log4j的创始人开发的一个日志组件,用于替代log4j。LogBack的架构设计足够通用,可适用于不同的环境,目前LogBack分为三个模:lobback-core,logback-classic和logback-access。
core模块是其它两个模块的基础,classic是core的扩展,是log4j巨大改进的版本。LogBack-classic本身实现了SL4J的API,因此可以很容易的在logback与其它日志系统之间转换,例如log4j、JDK1.4中的java.util.logging(JUL)。第三个模块access,它集成了Servlet容器,提供了通过HTTP访问日志的功能。
在项目里添加依赖(gradle):
Logback的核心对象:Logger、Appender、Layout
Logback主要建立于Logger、Appender 和 Layout 这三个类之上:
- Logger:日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也可以定义日志类型、级别。Logger对象一般多定义为静态变量:
public static final Logger logger = LoggerFactory.getLogger(loggerName);
- Appender:用于指定日志输出的目的地,目的地可以是控制台、文件、远程套接字服务器、 MySQL、 PostreSQL、Oracle和其他数据库、 JMS和远程UNIX Syslog守护进程等。一般在配置的时候用到。
- Layout:负责把事件转换成字符串,格式化的日志信息的输出。
Level 有效级别
LogBack的日志级别有trace、debug、info、warn、error,级别依次递增,定义于ch.qos.logback.classic.Level类。程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。如果设置级别为INFO,则优先级高于等于INFO级别(如:INFO、 WARN、ERROR)的日志信息将可以被输出,小于该级别的如DEBUG将不会被输出。默认情况下,根logger级别是DEBUG。
过滤器
过滤器的返回值只能是ACCEPT、DENY和NEUTRAL的其中一个:
- 如果返回DENY,那么记录事件立即被抛弃,不再经过剩余过滤器;
- 如果返回NEUTRAL,那么有序列表里的下一个过滤器会接着处理记录事件;
- 如果返回ACCEPT,那么记录事件被立即处理,不再经过剩余过滤器。
配置
LogBack可以通过编程式或以XML、Groovy格式配置,LogBack读取配置或属性文件的步骤:
1.logback首先会试着查找logback.groovy文件;
2.当没有找到时,继续试着查找logback-test.xml文件;
3.当没有找到时,继续试着查找logback.xml文件;
4.如果仍然没有找到,则使用默认配置(打印到控制台)。
本人项目的配置是在logback.groovy里的,示例如下:
下面贴出的是参考网上来自LogBack——LogBack在项目(Web或Java)中的应用的logback.xml的配置: