日志框架一logback配置和使用

前言

Logback是由log4j创始人设计的又一个开源日志组件, 比log4j的性能好.

1.导入依赖

<!--这个依赖直接包含了 logback-core 以及 slf4j-api的依赖-->
<dependency>
     <groupId>ch.qos.logback</groupId>
     <artifactId>logback-classic</artifactId>
     <version>1.2.3</version>
</dependency>

2.Logback的主要模块

  • logback-core: 核心代码模块
  • logback-classic: log4j的一个改良版本,同时实现了slf4j的接口,这样你如果之后要切换其他日志组件也是一件很容易的事
  • logback-access: 访问模块与Servlet容器集成提供通过Http来访问日志的功能

3.配置获取顺序

logback在启动的时候,会按照下面的顺序加载配置文件:

  1. 如果java程序启动时指定了logback.configurationFile属性,就用该属性指定的配置文件。
    java -Dlogback.configurationFile=/path/to/mylogback.xml Test,这样执行Test类的时候就会加载/path/to/mylogback.xml配置.
  2. 在classpath中查找 logback.groovy 文件
  3. 在classpath中查找 logback-test.xml 文件
  4. 在classpath中查找 logback.xml 文件
  5. 如果是 jdk6+,那么会调用ServiceLoader 查找 com.qos.logback.classic.spi.Configurator接口的第一个实现类,
    自动使用ch.qos.logback.classic.BasicConfigurator,在控制台输出日志.

4.配置文件的节点的结构

contextName节点

设置日志上下文名称,后面输出格式中可以通过定义%contextName来打印日志上下文名称

property节点

用来设置相关变量,通过key-value的方式配置,然后在后面的配置文件中通过${key}来访问

appender:负责写日志的组件, 主要用来设置日志的输出位置, 日志文件的生成策略等
  • appender

  • ConsoleAppender:向控制台输出日志内容的组件,只要定义好encoder节点就可以使用。
  • FileAppender:向文件输出日志内容的组件,用法也很简单,不过由于没有日志滚动策略,一般很少使用
  • RollingFileAppender:向文件输出日志内容的组件,同时可以配置日志文件滚动策略,在日志达到一定条件后生成一个新的日志文件. 它有下面几个子节点:

  - `<file>`:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。
  - `<append>`:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。
  - `<encoder>`:对记录事件进行格式化。
  - `<rollingPolicy>`:当发生滚动时,决定`RollingFileAppender`的行为,涉及文件移动和重命名。
     - `rollingPolicy`:两个常用热门的策略,`TimeBaseRollingPolicy`, `SizeBasedTriggeringPolicy`
        - `TimeBaseRollingPolicy`根据`fileNamePattern`标签来表示什么周期触发一次生成新的日志文件,`maxHistory`表示保存日志的最大单位时间
        - `SizeBasedTriggeringPolicy`表示基于文件大小进行滚动
  - `<triggeringPolicy>`: 告知`RollingFileAppender`何时激活滚动。
  - `<prudent>`:当为true时,不支持`FixedWindowRollingPolicy`。支持`TimeBasedRollingPolicy`,但是有两个限制,1不支持也不允许文件压缩,2不能设置file属性,必须留空。

原文地址:https://www.cnblogs.com/loveer/p/11327115.html

时间: 2024-08-30 17:10:50

日志框架一logback配置和使用的相关文章

Java日志框架:logback详解

为什么使用logback 记得前几年工作的时候,公司使用的日志框架还是log4j,大约从16年中到现在,不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结一下,logback大约有以下的一些优点: 内核重写.测试充分.初始化内存加载更小,这一切让logback性能和log4j相比有诸多倍的提升 logback非常自然地直接实现了slf4j,这个严格来说算不上优点,只是这样,再理解slf4j的前提下会很容易理解logback,也同时很容易用其他日志框架

SLF4J和Logback日志框架详解

SLF4J和Logback日志框架详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 本文讲述SLF4J和Logback日志框架.   SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现. LogBack在运行时使用JMX帮助修改日志配置,在生产状态下无需重启应用程序. SLF4J SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback.Log4j.Commons-logging和JDK自带的l

Spring Boot + Log4j2 日志框架配置 (Maven)

参考Spring Boot官方文档 日志部分 Spring Boot默认情况下,当使用"Starters" 使用Logback输出日志, 还包括适当的Logback路由, 确保其他的日志框架(Java Util Logging, Commons Logging, Log4j, SLF4J)都能正常使用 Sping Boot文档的 26.5 Custom Log Configuration 章节,说明了自定义日志配置方法 多样的日志系统可以通过 添加适当的日志框架库到classpath

集成日志框架

Java 常用日志框架 java.util.logging JDK 在1.4版本中引入的 java 原生日志框架 Log4j Apache的一个开源日志项目 目前停止维护 Logback log4j的改良版本 Log4j2 可以理解为log4j的升级版本,但是已经被全部重写 日志门面 slf4j 即简单日志门面(Simple Logging Facade for Java),它不是一个真正的日志实现,而是一个抽象层( abstraction layer),它允许你在后台使用任意一个日志实现 co

剖析项目多个logback配置(下)

来源:http://www.cnblogs.com/guozp/p/5973038.html 上篇大概描述了logback的加载顺序以及加载的源码,本篇将分析如果在你的Maven或者其他多模块的项目中,每个模块都存在logback.xml的情况,项目会加载哪个为准. 这里简单的测试下,我的service模块下有个logback.xml,其他的模块下也有,但是输出目录不同,以此来观察. service模块: <?xml version="1.0" encoding="UT

使得“Log4J日志文件保存路径”可配置

使用Log4J日志框架,可以配置将日志记录到文件中,示例配置如下: log4j.appender.A1=org.apache.log4j.RollingFileAppender log4j.appender.A1.Threshold=INFO log4j.appender.A1.File=log/info.log log4j.appender.A1.Append=true log4j.appender.A1.Encoding=GBK log4j.appender.A1.MaxFileSize=2

Java日志框架-logback的介绍及配置使用方法(转)

说明:内容估计有些旧,2011年的,但是大体意思应该没多大变化,最新的配置可以参考官方文档. 一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-access.logback-core是其它两个模块的基础模块.logback-classic是log4j的一个改良版本.此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志

日志框架只打印出Mybatis SQL的配置

项目比较大,各种乱七八糟的框架.Log4j配置的是INFO级别. 然而今天开发的时候我需要log4j打印出SQL的执行情况. 先改log4j的rootLogger级别到DEBUG......后果就是各种日志乱飞. log4j.rootLogger=DEBUG, stdout log4j.logger.org.apache=ERROR #log4j.logger.org.hibernate=ERROR #没用到,屏蔽 log4j.logger.org.springframework=ERROR l

java日志框架slf4j与log4j的使用与配置

日志记录自然是非常重要的,但恐怕能记住slf4j与log4j等日志框架配置的人就很少了,这个东西不难,只是配置好后很少会去动它,开发新项目一般也是从其他项目拷贝,或者参照文档 废话不多说,先说log4j,使用log4j只要简单的几步 首先,弄到log4j的jar包,maven工程配置以下依赖就行,或者,从阿里的maven仓库下载jar包,添加到工程的"build path" <dependency> <groupId>log4j</groupId>