logback的使用笔记

关于日志存储数据库方面的没有整理,暂时用不到,异步看了英文文档,发现暂时用不到,以后再整理

2017-04-09 00:57:26

logback是一个开源的日志组件,是log4j的作者开发的用来替代log4j的。 
logback由三个部分组成,logback-core, logback-classic, logback-access。其中logback-core是其他两个模块的基础。


logback中三个重要概念: Logger,Appender,Layout


Logger: 日志记录器,把它关联到应用对应的context上后,主要用于存放日志对象,定义日志类型,级别。


Appender: 指定日志输出的目的地,目的地可以是控制台,文件,或者数据库等


Layout: 负责把事件转换成字符串,格式化日志信息的输出


logback配置优先级顺序


  1. logback首先在classpath寻找logback.groovy文件,
  2. 如果没找到,继续寻找logback-test.xml文件
  3. 如果没找到,继续寻找logback.xml文件
  4. 如果仍然没找到,则使用默认配置(打印到控制台)

最佳实践


slf4j 定义日志接口及基本实现,而具体的实现由其他日志组件提供


  • log4j
  • commons-logging
  • logback

因此,如果想替换成其他的日志组件,只需要替换jar包即可。


实际开发中推荐使用slf4j+logback。

logback.xml 配置:

配置

 1 <configuration>
 2     <!--定义一个参数,可以直接在此配置文件中引用${LOG_HOME} -->
 3     <property name="LOG_HOME" value="logs" />
 4     <property name="LOG_FILE_NAME" value="crawler4j.log" />
 5
 6     <!--appender是负责写日志的组件, -->
 7     <!--consoleAppender是负责将日志输出到控制台 -->
 8     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
 9         <!--encoder 格式化日志格式 -->
10         <encoder>
11         <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
12             <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] -[%logger{0}]- %msg%n</pattern>
13         </encoder>
14
15     </appender>
16
17     <!--将日志输出到文件 -->
18     <appender name="FILE" class="ch.qos.logback.core.FileAppender">
19         <!--输出文件的路径 -->
20         <file>${LOG_HOME}/${LOG_FILE_NAME}</file>
21         <!--格式化日志输出格式 -->
22         <encoder>
23             <pattern>%date %-5level [%thread] - [%logger] - %msg%n</pattern>
24         </encoder>
25     </appender>
26
27     <appender name="ROLl"
28         class="ch.qos.logback.core.rolling.RollingFileAppender">
29         <!--滚动记录策略  这里是基于时间的策略(还有基于文件大小,文件大小和时间,。。具体可以查看ch.qos.logback.core.rolling里的policy) -->
30         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
31         <!-- %d{}里面的是规则,当规则变化时,则根据规则重新命名新的文件夹,下面是每秒中创建一个日志文件 -->
32             <fileNamePattern>logFile.%d{yyyy-MM-dd HH-mm-ss}.log</fileNamePattern>
33             <!--能够保存最大日志文件数量,超过之后会覆盖掉之前的文件  ,下面是最多10个文件 -->
34             <maxHistory>10</maxHistory>
35         </rollingPolicy>
36         <encoder>
37             <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n
38             </pattern>
39         </encoder>
40
41     </appender>
42     <!--level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。 如果未设置此属性,那么当前loger将会继承上级的级别。  -->
43
44 <!--     <loger name="LogbackTest.java" level="INfo">
45         <appender-ref ref="FILE" />
46     </loger> -->
47
48     <root level="DEBUG">
49         <appender-ref ref="STDOUT" />
50     </root>
51
52
53 </configuration>
54 <!-- 上述配置表示每天生成一个日志文件,保存30天的日志文件。 -->
55 <!-- <configuration>
56     <appender name="FILE"
57         class="ch.qos.logback.core.rolling.RollingFileAppender">
58         <file>test.log</file>
59         <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
60             <fileNamePattern>tests.%i.log.zip</fileNamePattern>
61             <minIndex>1</minIndex>
62             <maxIndex>3</maxIndex>
63         </rollingPolicy>
64         <triggeringPolicy
65             class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
66             <maxFileSize>5MB</maxFileSize>
67         </triggeringPolicy>
68         <encoder>
69             <pattern>%-4relative
70                 [%thread] %-5level %logger{35} - %msg%n </pattern>
71         </encoder>
72     </appender>
73     <root level="DEBUG">
74         <appender-ref ref="FILE" />
75     </root>
76     <logger name="com.github.tomakehurst" level="ERROR" />
77     <logger name="org.eclipse.jetty" level="ERROR" />
78     <root level="DEBUG">
79         <appender-ref ref="STDOUT" />
80         <appender-ref ref="FILE" />
81     </root>
82 </configuration> -->
83
84 <!-- 上述配置表示按照固定窗口模式生成日志文件,当文件大于20MB时,生成新的日志文件。窗口大小是1到3,当保存了3个归档文件后,将覆盖最早的日志。 -->

java代码:

package edu.uci.ics.crawler4j.tests;

import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogbackTest {

	private LogbackTest log;

	private final Logger logger = LoggerFactory.getLogger(LogbackTest.class);

	@Before
	public void init() {
		log = new LogbackTest();
	}

	@Test
	public void logTest() {
		for (int i = 0; i < 1000; i++) {
			this.logger.info("info--->" + i);
			this.logger.error("error----->" + i);
			this.logger.debug("debug----------->" + i);
		}
	}
}

  

时间: 2024-10-24 06:17:42

logback的使用笔记的相关文章

阅读Logback文档笔记--Logback的Configuration配置

要在项目中引入日志,需要一定的代价,据统计日志代码量将会占整个代码量的4%左右.因此我们需要一个工具管理这些日志声明. 对于Log4j.properties可以通过以下网址转化成logback.xml http://logback.qos.ch/translator/ Logback如何查找配置文件: 在classpath中查找logback.groovy 如果不存在,则在classpath中查找logback-test.xml 如果不存在,继续查找logback.xml 如果不存在,则由jdk

Logback 学习笔记

来源:http://webinglin.github.io/2015/06/04/Logback-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/ Logback背景 Logback是一个开源的日志组件,是log4j的作者开发的用来替代log4j的. logback由三个部分组成,logback-core, logback-classic, logback-access.其中logback-core是其他两个模块的基础. slf4j 定义日志接口及基本实现,而具体的实现

logback使用笔记

三大主要元素 looger:记录日志 appender:输出目的地 layout:输出格式 必要步骤: 一.引入包: import org.slf4j.Logger; import org.slf4j.LoggerFactory; 二.获取Logger实例 private Logger logger = LoggerFactory.getLogger(this.getClass()); PS.Logback不限制logger名,你可以随意命名logger.然而,目前已知最好的策略是以logger

Spring MVC整合logback日志框架实战

1.引入依赖,本项目maven构建,普通项目导入想要的jar包即可 版本 <properties> <slf4j-api.version>1.7.7</slf4j-api.version> <logback.version>1.1.3</logback.version> </properties> 依赖包 <dependency> <groupId>ch.qos.logback</groupId>

Docker 学习笔记【3】 Docker 仓库、数据卷、数据卷容器,网络基础实操。高级网络配置学习

Docker 学习笔记[4] 高级网络配置实操,实战案例实验 =========================================================================== Docker 学习笔记[2] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,记录开始 =========================================================================== 被格式化的脚本内容: #开头代表

Log4j,Log4j2,logback,slf4j日志学习

日志学习笔记 Log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.数据库等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程. Log4j有7种不同的log级别,按照等级从低到高依次为:TRACE.DEBUG.INFO.WARN.ERROR.FATAL.OFF.如果配置为OFF级别,表示关闭log. Log4j支持两种格式的配置文件:properties和xml.包含三

Spring3.0官网文档学习笔记(二)

1.3 使用场景 典型的成熟的spring web应用 spring使用第三方框架作为中间层 远程使用场景 EJB包装 1.3.1 依赖管理.命名规则(包) spring-*.jar *号代表的是模块的简写,如:spring-core, spring-webmvc, spring-jms 可以在四个不同的地方找到Spring: http://www.springsource.org/downloads/community  所有的jar包被打包成zip,名称从3.0开始是: org.spring

&#128293;SpringBoot图文教程2—日志的使用「logback」「log4j」

有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 大哥大姐新年好,点赞转发不要少 SpringBoot 图文系列教程技术大纲 简单说明,教程分为基础篇,进阶篇和高级篇 基础篇,本章力求简单快速的掌握基本的SpringBoot使用,并应用到项目中 进阶篇,学会SpringBoot更多的常见用法以及底层原理 高级篇,着重介绍SpringBoo

【安全牛学习笔记】

弱点扫描 ╋━━━━━━━━━━━━━━━━━━━━╋ ┃发现弱点                                ┃ ┃发现漏洞                                ┃ ┃  基于端口五福扫描结果版本信息(速度慢)┃ ┃  搜索已公开的漏洞数据库(数量大)      ┃ ┃  使用弱点扫描器实现漏洞管理            ┃ ╋━━━━━━━━━━━━━━━━━━━━╋ [email protected]:~# searchsploit Usage: