`
dyccsxg
  • 浏览: 205301 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类

logback 学习笔记

 
阅读更多

# download url
http://www.slf4j.org/download.html
http://logback.qos.ch/download.html

# 依赖 jar
slf4j-api-1.7.5.jar
logback-core-1.0.13.jar
logback-classic-1.0.13.jar

# 日志级别(大小写不敏感)
TRACE < DEBUG < INFO < WARN < ERROR

# Java 代码示例

package org.demo.logtest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogbackTest {

	private static Logger logger = LoggerFactory.getLogger(LogbackTest.class);
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		logger.info("MethodIn: main");
		// ...
		logger.info("MethodOut: main");
	}

}

# logback 配置文件 src/logback.xml 示例
# 将日志输出到控制台

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="30 seconds">
    
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg [%file:%line] %n</pattern>
        </encoder>
    </appender>
    
    <logger name="org.demo.logtest" level="DEBUG" />
    <root level="ERROR">
        <appender-ref ref="STDOUT" />
    </root>
    
</configuration>

# 将日志输出到文件, 并按大小滚动

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="30 seconds">
    
    <timestamp key="startTime" datePattern="yyyyMMdd'T'HHmmss"/>
    
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>myApp-${startTime}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
             <fileNamePattern>myApp.%i.log.zip</fileNamePattern>
             <minIndex>1</minIndex>
             <maxIndex>3</maxIndex>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>2KB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg [%file:%line] %n</pattern>
        </encoder>
    </appender>
    
    <logger name="org.demo.logtest" level="DEBUG" />
    <root level="ERROR">
        <appender-ref ref="FILE" />
    </root>
    
</configuration>
# 将日志输出到文件, 并按时间滚动

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="30 seconds">
    
    <timestamp key="startTime" datePattern="yyyyMMdd'T'HHmmss"/>
    
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>myApp-${startTime}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>myApp.%d{yyyy-MM-dd_HH-mm}.log.zip</fileNamePattern>
             <maxHistory>5</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg [%file:%line] %n</pattern>
        </encoder>
    </appender>
    
    <logger name="org.demo.logtest" level="DEBUG" />
    <root level="ERROR">
        <appender-ref ref="FILE" />
    </root>
    
</configuration>
# 将日志输出到文件, 并按时间和大小滚动

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="30 seconds">
    
    <timestamp key="startTime" datePattern="yyyyMMdd'T'HHmmss"/>
    
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>myApp-${startTime}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>myApp.%d{yyyy-MM-dd_HH-mm}.%i.log.zip</fileNamePattern>
             <maxHistory>5</maxHistory>
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                 <maxFileSize>2KB</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg [%file:%line] %n</pattern>
        </encoder>
    </appender>
    
    <logger name="org.demo.logtest" level="DEBUG" />
    <root level="ERROR">
        <appender-ref ref="FILE" />
    </root>
    
</configuration>

# 转换字符
http://logback.qos.ch/manual/layouts.html#conversionWord

# maxFileSize 的单位为KB, MB, GB, 默认是字节
例如: 5MB == 5000KB == 5000000
参见:http://logback.qos.ch/manual/appenders.html#SizeBasedTriggeringPolicy

# 文件名中的特殊字符
文件名不能包含下列任何字符:\/:*?"<>|

# pattern 中的特殊字符:()
圆括号在 logback 中用来分组, 如果需要将 () 当成普通字符对待, 则需要转义字符 '\' 处理, 例如 \([%thread]\)
参见:http://logback.qos.ch/manual/layouts.html#Parentheses

# 相关链接
日志组件logback的介绍及配置使用方法(一)
http://www.cnblogs.com/yuanermen/archive/2012/02/13/2348942.html
Logback学习笔记1
http://www.cnblogs.com/luowei010101/archive/2012/01/04/2312438.html

分享到:
评论

相关推荐

    牛人的spring学习笔记,非常适合初学者

    ### 牛人的Spring学习笔记,非常适合初学者 #### 第一课:面向抽象编程 面向抽象编程是一种编程思想,强调在程序设计过程中通过定义抽象层来分离业务逻辑与具体实现细节。这种方式有助于提高软件的可维护性和扩展...

    SpringBoot2学习笔记.zip

    SpringBoot2学习笔记 在Java开发领域,SpringBoot框架已经成为构建高效、简洁的企业级应用的首选。SpringBoot2是其最新版本,它极大地简化了Spring应用程序的初始设置和配置过程,使得开发者可以更快地投入到实际的...

    SpringBoot学习笔记.docx

    这篇学习笔记将引导我们深入了解 SpringBoot 的基本用法,包括项目的创建、返回视图、数据库交互、前端与后端数据传递、日志管理和安全控制等方面。 1. **新建项目**: 创建 SpringBoot 项目通常是通过 Maven 或 ...

    SpringBoot 学习笔记完整教程

    SpringBoot学习笔记完整教程 SpringBoot是Spring框架的一个简化版,旨在简化Spring应用程序的初始设置和开发过程。它集成了大量的常用库,如数据访问、安全、Web等,使得开发者可以快速构建健壮的微服务应用。本...

    springboot学习笔记.docx

    - Spring Boot默认采用SLF4J和Logback作为日志系统,支持灵活的日志配置和输出。 总的来说,Spring Boot通过简化配置和提供预封装的组件,极大地提升了开发效率,使其成为现代Java开发的首选框架。

    hibernate学习笔记

    《Hibernate学习笔记详解》 Hibernate,作为Java领域中的一款强大持久化框架,为开发者提供了对象-关系映射(ORM)的解决方案,极大地简化了数据库操作。这篇笔记将深入探讨Hibernate的核心概念、映射关系和内存...

    SpringBoot2-StudyNotes:我的Spring Boot学习笔记

    通过这份"SpringBoot2-StudyNotes"的学习资料,你可以深入理解Spring Boot 2的关键概念、配置方式以及如何利用其特性构建高效的应用。同时,通过阅读源代码和实践案例,能够提升你的Java开发能力,使你更加熟练地...

    资料-Java日志.zip

    本资料"Java日志.zip"包含的资源旨在帮助开发者理解和应用Java日志机制,其中可能涵盖了日志框架的介绍、示例代码以及相关的学习笔记。 1. **日志框架** Java平台上有多种日志框架,如Java内置的日志API(java....

    日志技术笔记总结.pdf

    日志技术是软件开发中不可或缺的一部分,主要用于记录系统运行过程中的事件、错误、警告和调试信息,便于后期问题...通过对JUL、Log4j、Logback和SLF4J等框架的学习,开发者可以根据项目需求选择最适合的日志解决方案。

    云笔记项目

    这个项目对于熟悉和掌握这两种技术,以及了解如何将它们整合到实际应用中,具有很高的学习价值。 Spring MVC是Spring框架的一部分,主要用于构建Web应用程序。它提供了模型-视图-控制器(MVC)架构模式的实现,帮助...

    springboot学习源码.rar(0积分下载)

    "springboot学习源码.rar"这个资源包含了SpringBoot的学习笔记和演习项目源码,对于初学者和没有开发经验的人来说,这是一个宝贵的实践平台。 首先,让我们了解一下SpringBoot的核心特性: 1. 自动配置:SpringBoot...

    Spring Boot核心技术-笔记-pdf版.7z

    综上所述,《Spring Boot核心技术》笔记PDF版全面覆盖了Spring Boot的各个方面,对于想要深入理解和掌握Spring Boot的开发者来说,是一份不可多得的学习资料。通过这份笔记,我们可以更好地理解和运用Spring Boot,...

    vue+spring boot整合笔记和代码资料

    Vue的学习笔记会涵盖基础到进阶的知识,如组件化、响应式数据绑定、路由、Vuex状态管理等。而Spring Boot的学习资料则可能包含Spring MVC、JPA、Thymeleaf等关键特性的介绍,以及如何配置和启动微服务。 整合Vue.js...

    尚硅谷spring boot基础篇.zip

    《尚硅谷Spring Boot基础篇》是一份全面介绍Spring Boot技术的资源集合,包含了代码实例、学习笔记和相关文档,旨在帮助初学者快速掌握这一流行的Java开发框架。Spring Boot以其简化Spring应用初始搭建以及运行过程...

    自学java基础Xmind思维导图笔记

    这份"自学Java基础Xmind思维导图笔记"提供了一个系统化的学习路径,涵盖了Java开发的基本概念和技术,帮助初学者逐步掌握这门强大的语言。 1. **不可变集合** 不可变集合是指一旦创建后,集合中的元素不能被添加、...

    基于springboot的在线教育系统源码数据库.doc

    - **我的笔记管理**:管理用户上传的学习笔记。 - **我的课程管理**:查看用户已选课程情况。 - **消息通知管理**:发布重要通知或公告。 - **学习交流**:提供交流讨论区。 - **试卷管理**:发布测试题目。 -...

    基于SSM框架+mysql搭建的云笔记系统(仿有道云笔记)源码.zip

    SSM框架是Java web开发中常用的三大框架Spring、Spring MVC和MyBatis...这个云笔记系统不仅涉及后端开发,也涵盖了前端和数据库等多个方面,提供了一个全面的实践平台,适合学习和理解SSM框架与MySQL数据库的整合应用。

    Java Springboot入门自学笔记

    本入门自学笔记将带你一步步了解并掌握Spring Boot的核心概念和实践技巧。 ### 01 SpringBoot简介 #### 1.1 Spring Boot 的优势 - **简化的起步**:Spring Boot 提供了起步依赖(starter),可以通过添加相应的Maven...

    SpringBoot(入门篇)资料.rar

    总的来说,这份压缩包提供了SpringBoot入门所需的基本概念、实践示例和学习笔记,对于希望了解和学习SpringBoot的人来说是一份宝贵的资源。通过深入理解和实践这些内容,你可以掌握SpringBoot的核心特性,并能快速...

Global site tag (gtag.js) - Google Analytics