logback的使用

logback的使用:

  1. 配置登录环境。您可以通过几种或多或少的复杂方法来执行此操作。

  2. 在希望执行日志记录的每个类中,Logger通过调用org.slf4j.LoggerFactory该类的 getLogger()方法,将当前类名称或该类本身作为参数传递来检索 实例 。

  3. 通过调用其记录方法(即debug(),info(),warn()和error()方法)使用此记录器实例。这将在配置的附加程序上生成日志记录输出。

logback分为三个模块:logback-core,logback-classic(经典模块)和logback-access(访问,与Servlet容器集成在一起,以提供HTTP访问日志功能)。

LoggerAppenderLayout。这三种类型的组件协同工作

Logger班是的logback经典模块的一部分。另一方面,AppenderLayout接口是logback-core的一部分,作为通用模块,logback-core没有记录器的概念。

LoggerContext后者负责制造记录器并将它们排列成树状层次结构

TRACE,DEBUG,INFO,WARN和ERROR,默认情况下,此级别是DEBUG。TRACE < DEBUG < INFO < WARN < ERROR

如果日志记录请求的级别高于或等于记录器的有效级别,则认为该记录请求已启用。否则,该请求被称为已禁用

logger.setLevel(Level. INFO);

用logback说,输出目标称为追加器。Appender

自定义输出格式。这是通过将布局与附加程序相关联来实现的

参数化记录

拼接的方式(字符串的拼接,产生较大的成本)

logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));

一种基于消息格式的便捷替代方法:此变体不会产生参数构造的成本,并且仅当将日志记录请求发送到附加的附加程序时,消息才会被格式化。此外,格式化消息的组件得到了高度优化。

logger.debug("The new entry is {}.", entry);

如果需要传递三个或更多参数,Object[]则也可以使用 变体。例如,您可以编写:

Object[] paramArray = {newVal, below, above};
logger.debug("Value {} was inserted between {} and {}.", paramArray);

运行流程:

 

配置:

可以通过编程或使用以XML或Groovy格式表示的配置脚本来配置Logback。

配置的初始化步骤:

  1. Logback尝试在类路径中找到一个名为logback-test.xml 的文件 。

  2. 如果找不到此类文件,则logback尝试在classpath中找到一个名为logback.groovy 的文件 。

  3. 如果找不到这样的文件,它将在类路径 ..中检查文件 logback.xml

  4. 如果没有找到这样的文件,[服务提供商装载设施(在JDK 1.6中引入)用于解决执行 接口通过查找文件 META-INF \ SERVICES \ ch.qos.logback.classic.spi.Configurator 在类路径。它的内容应指定所需 实现的完全限定的类名。 com.qos.logback.classic.spi.ConfiguratorConfigurator`

  5. 如果以上方法均未成功,则logback将使用进行自动配置,BasicConfigurator这将导致日志记录输出定向到控制台。

假设不存在配置文件logback-test.xmllogback.xml,则logback将默认为调用BasicConfigurator,这将设置一个最小的配置。此最小配置包含一个ConsoleAppender附加到根记录器的组件。使用PatternLayoutEncoder设置 为格式的输出格式化格式 %d {HH:mm:ss.SSS} [%thread]%-5level%logger {36}-%msg%n。此外,默认情况下,为根记录程序分配了DEBUG 级别。

 

配置文件的最基本结构可以描述为<configuration>元素,包含零个或多个<appender>元素,然后是零个或多个<logger>元素,然后是最多一个<root>元素。

使用<appender> 元素配置一个附加程序,该元素具有两个必需属性nameclass。该 名称属性指定,而该附加目的地的名称属性指定的appender类实例化的全名。该<appender>元件可含有零个或一个<layout>元素,零个或多个 <encoder>元件以及零层或更多 <filter>的元件。除了这三个公共元素之外,<appender>元素可以包含任意数量的与appender类的JavaBean属性相对应的元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值