java中读取logback日志文件_Java中Logback日志框架的简单介绍

f065a7cd543dc5d56bb08030c9f80474.pngJava中Logback日志框架的简单介绍

Logback是log4j的改良版,相比log4j,logback是有优势的,后面会简单介绍。

Logback简介

1、logback和log4j是同一个作者,logback可以看作是log4j的升级版

2、logback分为三个模块, logback-core, logback-classic 和logback-access,其中 logback-core是核心,其他两个模块依赖core,这个logback-classic是log4j的改善版本,并且原生实现了SLF4J门面(具体参考前文:Java中SLF4J日志框架的实现原理)。模块logback-access可以集成于Servlet容器,比如Tomact和Jetty。

3、你可以基于logback-core自己创建其他的模块。

Logback相比log4j的优势,

比log4j更快,重写了内核,在一些关键路径上性能提升10倍,内存占用也更少。经过大量的测试,和log4j测试不在一个量级。logback-classic是SLF4J的实现,切换其他日志框架非常方便,文档丰富并且不断更新,支持Groovy风格的配置文件配置文件自动重新加载,如果更新了配置文件,logback-classic可以自动重新加载。自动删除日期较老的日志文件,maxHistory属性,你可以控制已经产生日志文件的最大数量。如果设置maxHistory为12,那那些log文件超过12个月的都会被自动移除。自动压缩归档的日志文件,压缩文件是异步进行,不影响应用。配置文件可以处理不同的环境开发,测试,生产),这样一个配置文件就可以适应多个环境。SiftingAppender(一个非常多功能的Appender) 它可以用来分割日志文件根据任何一个给定的运行参数。如,SiftingAppender能够区别日志事件跟进用户的Session,然后每个用户会有一个日志文件。Logback的简单应用,

在上文Java中SLF4J日志框架的实现原理中有个简单的例子,此文不再重复。

Logback的配置

配置加载的顺序,上下文初始化的时候会调用ContextInitializer,在这个类中的方法findURLOfDefaultConfigurationFile是用来加载默认的配置文件,

先从系统的属性中获取键为logback.configurationFile的值,如果有,就加载指定的配置文件,如果没有设置,会在classpath中找文件logback-test.xml如果logback-test.xml不存在,搜索logback.groovy配置文件如果logback.groovy不存在,最后查找logback.xml如果以上配置文件不存在,会用SPI的方式加载classpath下的Configurator接口的实现类。最后,如果以上都没有成功,会默认创建BasicConfigurator实例,BasicConfigurator默认配置了ConsoleAppender,也就是只能输出到控制台。logback的配置

1、最简单的使用就是不使用任何配置文件,用默认的Console输出日志,

2、使用logback.xml配置文件

最基本的配置是一个configuration里面有零个或多个appender,零个或多个logger和最多一个root标签组成。(logback是对大小写敏感的)

654fda00f99f786292a03e201a69dad2.pnglogback的配置文件组成

configuration是根标签,有三个属性debug,scan和scanPeriod,debug=true时会打印出logback内部的状态,scan=true表示如果配置修改了,会重新加载模式为true,scanPeriod为扫描时间间隔。logger标签用来设置某一个包或具体的某一个类的日志输出,有个level属性,用来设置日志级别,可选值为TRACE,DEBUG,INFO,WARN, ERROR, ALL 和 OFF。logger标签可以包括零个或者多个appender-ref标签。root标签配置root logger,这个标签和logger一样有个level,也有零个或者多个appender-ref标签。Appender标签,负责写日志的组件,有两个必要属性name和class,name指定appender名称,class指定appender的全限定名。这个Appender可以有零个或者多个layout,encoder和filter标签。appender的class 类型主要有三种:ConsoleAppender、FileAppender、RollingFileAppender。

996009418740834bb05562b474b8d893.pngappender标签

每个标签都有很多细节,就不在本文啰嗦的写了,如果需要请参考logback的官网。写一个简单的logback的开发配置

0f8e037abd33286af9fd9beaeb3d8b36.pnglogback配置

如果项目中有复杂的需求,可以去官网找相应的文档,不变的永远是变化,软件可能随时升级,官方的文档也会不断的更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Java 使用 Logback 日志记录器并实现日志按天分类压缩保存,你需要进行以下步骤: 1. 在项目添加 logback 相关依赖,例如: ```xml <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> ``` 2. 创建 logback.xml 配置文件,并配置日志记录器。以下是一个基本的配置示例: ```xml <configuration> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="dailyRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/myapp.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/myapp.%d{yyyy-MM-dd}.log.gz</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="console" /> <appender-ref ref="dailyRollingFileAppender" /> </root> </configuration> ``` 3. 在 Java 代码使用 Logback 记录日志。例如: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyClass { private static final Logger logger = LoggerFactory.getLogger(MyClass.class); public void doSomething() { logger.info("This is an info message."); logger.error("This is an error message.", new Exception("Something went wrong.")); } } ``` 以上配置将创建一个名为 `dailyRollingFileAppender` 的日志记录器,它将每天生成一个新的日志文件日志文件名格式为 `logs/myapp.<yyyy-MM-dd>.log.gz`,并在超过 30 天的日志文件后自动删除旧日志日志文件将以 gzip 格式压缩保存。同时,在控制台输出日志信息。可以根据需要调整这些配置项。 希望这些信息能对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值