博客
关于我
Logback入门教程学习笔记
阅读量:395 次
发布时间:2019-03-05

本文共 2821 字,大约阅读时间需要 9 分钟。

Logback详细配置与实践

Logback是Java社区广泛使用的日志框架,它以其高性能、灵活性和可扩展性著称。作为Log4j的替代品,Logback提供了更高效的实现、更丰富的配置选项以及更灵活的日志归档方式。本文将详细介绍Logback的核心组件、配置方法以及实际应用场景。

Logback的架构

Logback的架构由三个核心组件构成:LoggerAppenderLayout

  • Logger:负责生成日志信息的上下文,是应用程序与日志交互的主要接口。
  • Appender:日志输出的具体实现,负责将日志信息输出到指定的目标,如控制台或文件。
  • Layout:用于格式化日志信息,决定日志的显示方式。

Maven依赖配置

在Spring Boot项目中,为了使用Logback,我们需要添加以下依赖:

org.slf4j
slf4j-api
1.7.30
ch.qos.logback
logback-core
1.2.3
ch.qos.logback
logback-classic
1.2.3

基本配置与代码示例

resources/logback.xml中添加配置文件,例如以下内容:

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

创建一个日志示例类:

@Slf4jpublic class Example {    public static void main(String[] args) {        log.info("Example log from {}", Example.class.getSimpleName());    }}

运行后,控制台会输出以下信息:

09:59:36.226 [main] INFO com.logback.demo.Example - Example log from Example

Logger上下文

使用@Slf4j注解可以简化日志代码,相当于:

private static final Logger log = LoggerFactory.getLogger(Example.class);

Logger继承结构

Logback的Logger继承结构类似于Java的继承:

  • 所有Logger都是root logger的后代。
  • 如果Logger没有指定日志级别,会继承最近的祖先Logger的级别。
  • root logger默认级别为DEBUG。

参数化打印日志

使用占位符避免字符串拼接:

log.debug("Current count is {}", count);log.debug("Going to divide {} by {}", 42, zero);log.debug("user is {}", user);

详细配置

默认行为:如果没有找到配置文件,Logback会创建一个ConsoleAppender并关联到root logger。

Logback查找配置文件顺序
  • 检查logback-test.xmllogback.groovylogback.xml
  • 如果未找到,查找com.qos.logback.classic.spi.Configurator的实现。
  • 如果仍未找到,创建一个ConsoleAppender并关联到root logger。
  • 基本配置解释
    %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
    解决日志故障配置

    启用debug模式:

    输出日志如下:

    15:17:24,550 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]...
    自动重载配置

    启用自动扫描:

    修改Loggers

    为特定Logger设置日志级别:

    Appenders

    ConsoleAppender

    用于控制台输出:

    %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
    FileAppender

    用于文件输出:

    tests.log
    true
    %-4relative [%thread] %-5level %logger{35} - %msg%n
    RollingFileAppender

    实现日志滚动:

    ${LOG_DIR}/${LOG_FILE}.log
    ${LOG_DIR}/${LOG_FILE}.%d{yyyy-MM-dd}.gz
    30
    3GB
    %-4relative [%thread] %-5level %logger{35} - %msg%n

    Layouts

    默认PatternLayout格式:

    %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

    总结

    通过以上配置和实践,我们掌握了Logback的核心配置方法和实际应用场景。Logback为开发者提供了灵活的日志管理工具,能够满足不同应用场景的需求。

    转载地址:http://qshwz.baihongyu.com/

    你可能感兴趣的文章
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
    查看>>
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>