`

logback学习使用总结

阅读更多

一、  使用前组件准备:

 

maven项目使用logback:

    pom文件中添加:       

<dependency>
     <groupId>ch.qos.logback</groupId>
     <artifactId>logback-core</artifactId>
     <version>1.1.5</version>
</dependency>
<dependency>
     <groupId>ch.qos.logback</groupId>
     <artifactId>logback-classic</artifactId>
     <version>1.1.5</version>
</dependency>
<dependency>
     <groupId>ch.qos.logback</groupId>
     <artifactId>logback-access</artifactId>
     <version>1.1.5</version>
</dependency>

 

 也可手动添加组件:

    logback-access-1.1.5.jar

    logback-classic-1.1.5.jar

    logback-core-1.1.5.jar 

    slf4j-api-1.7.16.jar 

注意:如果与框架结合使用 比如struts、spring、hibernate等开源框架,而这些框架很多是使用log4j记录日志的,因此需要log4j-over-slf4j-1.6.6.jar

 

二、开始使用

 

1、  使用logback将日志打印到控制台:

 

示例代码: 

/**
 * @author zw Date: 2016/10/9 Time:15:04.
 */
public class TestDemo {
    private static Logger log = LoggerFactory.getLogger(TestDemo.class);
    public static void main(String[]args){
        /**
         * log日志分为 trace debug info warn error 五个级别
         * 级别等级顺序 trace < debug < info < warn < error
         */
        log.trace("----this log is trace level");
        log.debug("----this log is debug level");
        log.info("----this log is info level");
        log.warn("----this log is warn level");
        log.error("----this log is error level");
        String name = "logback";
        String message = "demo";
        String[] params = { "logback", "logback" };
 
        // logback提供的可以使用变量的打印方式
        log.info("##########hello,{}!", name);
 
        // 使用占位符方式输出日志信息
        log.info("##########hello {}! this is {}!", name, message);
 
        // 可以传入一个数组
        log.info("##########hello {}! this is {}", params);
    }
}

logback.xml配置文件         

<?xml version="1.0" encoding="UTF-8"?>
<!--configuration 属性说明:
    scan属性:用来设置配置文件变动时是否重新加载,值是 true\false ,默认是true即 配置变动时重新加载
    scanPeriod属性:用来设置每隔多久检查一次配置是否变动,默认是1分钟,默认单位是毫秒
    debug属性:用来设置是否将logback内部的日志打印出来,即启动时输出配置加载信息。值为true\false 默认为false-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
         <!--定义日志输出格式-->
         <property name="enPattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
         <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
                 <encoder >
                     <pattern>${enPattern}</pattern>
                 </encoder>
         </appender>
         <!-- root的默认level是DEBUG 可以包含多个<appender-ref>元素-->
         <root level="TRACE">
             <appender-ref ref="STDOUT" />
         </root>
</configuration>

 2、  将日志记录到文件中: 

示例代码:同1中的示例代码。 

logback配置文件修改: 

在configuration中添加: 

<!--定义日志输出文件目录-->
<property name="outFilePath" value="E:/个人/demo/logs/demo.log" />

    并替换appender节点, 

<appender name="STDOUT" class="ch.qos.logback.core.FileAppender">
        <file>${outFilePath}</file>
        <append>true</append>
        <encoder charset="UTF-8">
            <pattern>${enPattern}</pattern>
        </encoder>
   </appender>

 3、同时输出到文件和控制台:

示例代码同1. 

配置文件如下: 

   <appender name="STDOUT"               class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <pattern>${enPattern}</pattern>
        </encoder>
    </appender>
 
    <appender name="toFile" class="ch.qos.logback.core.FileAppender">
        <file>${outFilePath}</file>
        <append>true</append>
        <encoder charset="UTF-8">
            <pattern>${enPattern}</pattern>
        </encoder>
    </appender>
 
    <!-- root的默认level是DEBUG 可以包含多个<appender-ref>元素-->
    <root level="debug">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="toFile" />
    </root>

4、输出日志到文件每天或每小时等一个文件: 

示例代码:同1: 

配置文件: 

在3的基础上,修改。增加:

    <!--定义今日之前日志输出文件-->
    <property name="outOldFilePath" value="E:/个人/demo/logs/demo-%d{yyyy-MM-dd}.log" /> 

并修改 name为 toFile的appender,修改后如下: 

    <!--定义日志输出格式-->
    <property name="enPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level {%C.java:%L} - %msg%n" />
    <!--定义日志输出文件目录-->
    <property name="outFilePath" value="E:/个人/demo/logs/demo.log" />
    <!--定义今日之前日志输出文件-->
    <property name="outOldFilePath" value="E:/个人/demo/logs/demo-%d{yyyy-MM-dd}.log" />
    <!--带有loger的配置,不指定级别,不指定appender 输出到控制台-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <pattern>${enPattern}</pattern>
        </encoder>
    </appender>
 
    <!--今日日志输出到 outFilePath ,今日之前的日志在 -->
    <appender name="toFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--今日日志记录的日志文件-->
        <file>${outFilePath}</file>
        <append>true</append>
        <!--设定昨日的日志文件-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--昨日日志的日志文件-->
            <fileNamePattern>${outOldFilePath}</fileNamePattern>
            <!--保留30天内的日志-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>${enPattern}</pattern>
        </encoder>
    </appender>
 
    <!-- root的默认level是DEBUG 可以包含多个<appender-ref>元素-->
    <root level="debug">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="toFile" />
    </root>

 也可以按分钟或小时分文件输出,调整 

<property name="outOldFilePath" value="E:/个人/demo/logs/demo-%d{yyyy-MM-dd}.log" />

 为:

a、按小时分:

<property name="outOldFilePath" value="E:/个人/demo/logs/demo-%d{yyyyMMddHH}.log" />

b、按分钟分:

<property name="outOldFilePath" value="E:/个人/demo/logs/demo-%d{yyyyMMddHHMM}.log" />

 

 如有理解不对的,请指正,谢谢

 

分享到:
评论

相关推荐

    logback使用方式简单总结

    Logback 是一个在Java应用程序中用于日志记录的开源框架,它是Log4j的后继者,由Ceki Gülcü(Log4j 的...在提供的 `LogbackTest` 文件中,可能包含了一些示例代码,可以进一步学习如何在项目中集成和使用 Logback。

    logback完整学习例子

    总结,这个"Logback 完整学习例子"涵盖了 Maven 集成、环境配置切换、日志生成、指定包日志和自定义过滤器等多个方面,是理解并实践 Logback 功能的好材料。通过学习和实践这些内容,开发者能够更好地掌握日志管理,...

    Logback日志框架学习总结

    文档中主要讲述了在项目中使用logback搭建日志系统的内容。其中包括日志系统的搭建,配置文件的使用详情(基本语法,使用变量,保存日志到文件,日志文件的分割等等)

    logback高级使用例子

    **日志系统的重要性** ...通过深入理解和熟练使用Logback,我们可以优化日志记录,提升问题排查效率,为软件系统的稳定运行保驾护航。`logback-advance-demo`压缩包可能包含了上述功能的实践示例,供学习和参考。

    logback学习

    ### Logback 学习 #### 一、Logback 简介 Logback 是一个用于 Java 的日志框架,由 Ceki Gülcü 开发,是 Log4j 的一个升级版。Logback 提供了更好的性能和更小的内存占用,并且在功能上也更加丰富。Logback 分为...

    logback所需jar包

    **压缩包子文件的文件名称列表:“logback学习”** 这可能是一个包含Logback相关学习资料的压缩包,其中可能包括配置示例、教程文档、案例分析等。通过学习这些材料,你可以了解如何有效地配置和利用Logback,以及...

    logback入门实例

    "入门实例"意味着我们将关注基础知识和简单示例,帮助初学者理解如何在项目中配置和使用Logback。 描述中的链接指向了一个个人博客,虽然具体内容未给出,但可以推测博主分享了一个关于如何使用Logback的实际操作...

    logback日志分目录分级别案例

    **Logback日志框架概述** Logback 是一个用于日志记录的开源框架,由 Ceki Gülcü(SLF4J 的创始人)开发。它是 log4j 的后继者,旨在提供更高...案例中的文档和注释是学习和实践这一功能的重要资源,值得深入研究。

    logback开发文档

    **日志管理在软件开发中的重要性** 日志记录是软件开发中不可或缺的一部分,它能够帮助开发者追踪程序运行状态,定位错误,优化性能,并...通过深入学习和实践,开发者可以充分利用 Logback 来优化他们的日志系统。

    tomcat-logback.rar

    总结来说,Logback作为一款强大的日志框架,不仅提供了丰富的配置选项,还具有高效的性能。在Tomcat环境中,通过合理的配置,可以实现高效、灵活的日志管理和分析,从而提升开发效率和问题排查能力。通过不断学习和...

    Logback 实例,log4,slf4,logback日志输出 demo

    通过"Logback实例,log4,slf4,logback日志输出demo"的学习,你可以掌握如何配置这些工具,以满足项目需求,如指定日志的存储位置,定制日志格式,以及管理日志文件的生命周期。实践这些示例,将有助于提升你在日志...

    logback jar 包

    **日志框架——logback** 在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪应用程序的运行状态,定位和解决潜在问题。...通过深入学习和使用 logback,可以提升项目维护和问题排查的效率。

    logback动态日志配置 - 示例源码

    在给定的示例源码中,你可以学习到如何配置 MDC、使用 JMX 进行动态调整,以及如何在 Java 代码中实现这些功能。熟练掌握这些技能将有助于提升日志系统的灵活性和实用性,从而更好地服务于开发和运维工作。

    slf4j+logback 于log4j+commons-logging大PK

    总结来说,SLF4J+Logback是现代Java项目中的首选日志解决方案,因为它们提供了一种灵活、高性能的日志记录机制。然而,理解不同日志框架之间的差异和应用场景,可以帮助开发者根据项目需求做出最佳选择。在实际工作...

    logback,弹簧靴 弹簧安全装置.zip

    在 Spring Boot 应用中,logback 默认被集成并使用 `application.properties` 或 `application.yml` 文件中的配置。开发者可以在这里设置日志级别和输出位置,或者通过添加 `logback-spring.xml` 来自定义更复杂的...

    Spring如何动态自定义logback日志目录详解

    "Spring如何动态自定义logback日志目录详解" ...以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值。如果有疑问大家可以留言交流,谢谢大家对我们的支持。

    springbootLogback.zip

    在本学习记录中,我们将深入探讨如何将Logback整合到SpringBoot项目中,并理解Logback的一些关键配置标签。 首先,SpringBoot默认的日志系统是Logback,因此我们不需要额外引入依赖。在`pom.xml`文件中,SpringBoot...

    logback_example

    Logback_example项目可能是用来演示如何在实际项目中配置和使用Logback进行日志记录的示例。通过对Logback的深入理解,开发者可以更好地监控和调试应用程序,提高开发效率。这个例子可能包括不同级别的日志输出、...

    logback:简单的积压实用程序

    **标题解析:** "Logback: 简单的日志实用...总结,Logback作为一个高效、灵活的日志工具,是Java开发中的重要组成部分,它提供了丰富的功能来满足各种日志需求,同时其社区支持和文档也使得学习和使用变得更加容易。

    logbak最全pdf中文文档

    Logback 是一个在 Java 应用程序中广泛使用的日志框架,由 Ceki Gülcü(也是 log4j 的创始人)开发。它旨在提高性能,提供更灵活的日志配置,并且是为满足现代应用程序的需求而设计的。Logback 包含了三个主要组件...

Global site tag (gtag.js) - Google Analytics