一、 使用前组件准备:
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 是一个在Java应用程序中用于日志记录的开源框架,它是Log4j的后继者,由Ceki Gülcü(Log4j 的...在提供的 `LogbackTest` 文件中,可能包含了一些示例代码,可以进一步学习如何在项目中集成和使用 Logback。
总结,这个"Logback 完整学习例子"涵盖了 Maven 集成、环境配置切换、日志生成、指定包日志和自定义过滤器等多个方面,是理解并实践 Logback 功能的好材料。通过学习和实践这些内容,开发者能够更好地掌握日志管理,...
文档中主要讲述了在项目中使用logback搭建日志系统的内容。其中包括日志系统的搭建,配置文件的使用详情(基本语法,使用变量,保存日志到文件,日志文件的分割等等)
**日志系统的重要性** ...通过深入理解和熟练使用Logback,我们可以优化日志记录,提升问题排查效率,为软件系统的稳定运行保驾护航。`logback-advance-demo`压缩包可能包含了上述功能的实践示例,供学习和参考。
### Logback 学习 #### 一、Logback 简介 Logback 是一个用于 Java 的日志框架,由 Ceki Gülcü 开发,是 Log4j 的一个升级版。Logback 提供了更好的性能和更小的内存占用,并且在功能上也更加丰富。Logback 分为...
**压缩包子文件的文件名称列表:“logback学习”** 这可能是一个包含Logback相关学习资料的压缩包,其中可能包括配置示例、教程文档、案例分析等。通过学习这些材料,你可以了解如何有效地配置和利用Logback,以及...
"入门实例"意味着我们将关注基础知识和简单示例,帮助初学者理解如何在项目中配置和使用Logback。 描述中的链接指向了一个个人博客,虽然具体内容未给出,但可以推测博主分享了一个关于如何使用Logback的实际操作...
**Logback日志框架概述** Logback 是一个用于日志记录的开源框架,由 Ceki Gülcü(SLF4J 的创始人)开发。它是 log4j 的后继者,旨在提供更高...案例中的文档和注释是学习和实践这一功能的重要资源,值得深入研究。
**日志管理在软件开发中的重要性** 日志记录是软件开发中不可或缺的一部分,它能够帮助开发者追踪程序运行状态,定位错误,优化性能,并...通过深入学习和实践,开发者可以充分利用 Logback 来优化他们的日志系统。
总结来说,Logback作为一款强大的日志框架,不仅提供了丰富的配置选项,还具有高效的性能。在Tomcat环境中,通过合理的配置,可以实现高效、灵活的日志管理和分析,从而提升开发效率和问题排查能力。通过不断学习和...
通过"Logback实例,log4,slf4,logback日志输出demo"的学习,你可以掌握如何配置这些工具,以满足项目需求,如指定日志的存储位置,定制日志格式,以及管理日志文件的生命周期。实践这些示例,将有助于提升你在日志...
**日志框架——logback** 在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪应用程序的运行状态,定位和解决潜在问题。...通过深入学习和使用 logback,可以提升项目维护和问题排查的效率。
在给定的示例源码中,你可以学习到如何配置 MDC、使用 JMX 进行动态调整,以及如何在 Java 代码中实现这些功能。熟练掌握这些技能将有助于提升日志系统的灵活性和实用性,从而更好地服务于开发和运维工作。
总结来说,SLF4J+Logback是现代Java项目中的首选日志解决方案,因为它们提供了一种灵活、高性能的日志记录机制。然而,理解不同日志框架之间的差异和应用场景,可以帮助开发者根据项目需求做出最佳选择。在实际工作...
在 Spring Boot 应用中,logback 默认被集成并使用 `application.properties` 或 `application.yml` 文件中的配置。开发者可以在这里设置日志级别和输出位置,或者通过添加 `logback-spring.xml` 来自定义更复杂的...
"Spring如何动态自定义logback日志目录详解" ...以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值。如果有疑问大家可以留言交流,谢谢大家对我们的支持。
在本学习记录中,我们将深入探讨如何将Logback整合到SpringBoot项目中,并理解Logback的一些关键配置标签。 首先,SpringBoot默认的日志系统是Logback,因此我们不需要额外引入依赖。在`pom.xml`文件中,SpringBoot...
Logback_example项目可能是用来演示如何在实际项目中配置和使用Logback进行日志记录的示例。通过对Logback的深入理解,开发者可以更好地监控和调试应用程序,提高开发效率。这个例子可能包括不同级别的日志输出、...
**标题解析:** "Logback: 简单的日志实用...总结,Logback作为一个高效、灵活的日志工具,是Java开发中的重要组成部分,它提供了丰富的功能来满足各种日志需求,同时其社区支持和文档也使得学习和使用变得更加容易。
Logback 是一个在 Java 应用程序中广泛使用的日志框架,由 Ceki Gülcü(也是 log4j 的创始人)开发。它旨在提高性能,提供更灵活的日志配置,并且是为满足现代应用程序的需求而设计的。Logback 包含了三个主要组件...