日志的作用:
不言而喻,任何软件系统都会使用日志,定位问题,分析问题,监控系统当前状态等等都会使用到日志。
当前最流行的日志框架:
1、SLF4J+Log4j(如果之前的项目工程一直使用log4j,建议继续使用)
2、SLF4J+Logback(新的项目,建议使用此组合)
SLF4J
SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback、Log4j、Commons-logging和JDK自带的logging实现接口。它使得用户可以在部署时使用自己想要的日志框架。SLF4J是轻量级的,在性能方面几乎是零消耗的。
SLF4J没有替代任何日志框架,它仅仅是标准日志框架的外观模式。如果在类路径下除了SLF4J再没有任何日志框架,那么默认状态是在控制台输出日志。
Logback
Logback是Log4j的改进版本,而且原生支持SLF4J(因为是同一作者开发的),因此从其它日志框架如Log4j或JDK的logging迁移到Logback是完全可行的。
由于Logback原生支持SLF4J,因此Logback+SLF4J的组合是日志框架的最佳选择,比SLF4J+其它日志框架的组合要快一些。而且Logback的配置可以是XML或Groovy代码
SLF4J + Logback
1.maven依赖
在pom.xml包含下面的依赖:它会自动包含所有的依赖包logback-core、slf4j-api……
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.0.7</version> </dependency>
2.配置和使用
1)给个常用的配置:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同 --> <property name="LOG_HOME" value="logs/"/> <appender name="Console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{H:mm} %-5level [%logger{16}] %msg%n</pattern> </encoder> </appender> <!-- 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <Encoding>UTF-8</Encoding> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${LOG_HOME}/myApp.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </layout> </appender> <!-- 用来设置某一个包或者具体的某一个类的日志打印级别,包名要与实际项目一致 --> <logger name="com.bcc" level="debug" /> <!-- 将级别为“DEBUG”及大于“DEBUG”的日志信息传递给root处理,本身并不打印 --> <root level="info"> <!-- root将级别为“INFO”及大于“INFO”的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console; --> <appender-ref ref="Console" /> <!-- 标识这个appender将会添加到这个logger --> <appender-ref ref="FILE" /> </root> </configuration>
详细的配置参考:
2)java代码中使用:
相关推荐
### Java分布式应用学习笔记09JMX-MBean的介绍 #### MBean概念及作用 MBean,即Managed Bean,是在JMX(Java Management Extensions)框架中用于管理资源的一种特殊Java对象。通过MBean,可以方便地对应用程序进行...
### Java学习笔记——Java与Hibernate入门精要 #### 一、Java学习笔记概述 本学习笔记旨在帮助初学者系统地掌握Java语言的基础知识,并通过实际案例深入理解Hibernate框架的应用。通过对核心概念和技术点的详细解释...
Java学习笔记涵盖了许多核心概念,包括面向对象编程的各个方面。以下是对这些知识点的详细解析: 1. **继承中方法的重写**: 当子类重写父类的方法时,子类方法的访问权限必须至少等于或大于父类中对应方法的访问...
### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...
Java学习笔记源码MD.rar是一个压缩包,其中包含了一系列关于Java编程语言的学习资料,特别是针对JVM(Java虚拟机),Spring框架以及Java多线程等内容的深入探讨。这些主题是Java开发中的核心部分,对于任何想要提升...
《java jdk 7学习笔记》适合java的初中级读者,以及广大java应用开发人员。 作译者 林信良(网名:良葛格) 学历:台湾大学电机工程学系 经历:台湾升阳教育训练技术顾问、专业讲师,oracle授权训练中心讲师 ...
**Java Redis 学习笔记概览** 在Java开发中,Redis作为一个高性能的键值存储系统,常被用于缓存、消息队列、分布式锁等多种场景。本笔记将深入探讨Java与Redis的集成以及如何利用Springboot框架进行高效操作。 1. ...
《良葛格的Java学习笔记全》是一份深入浅出的Java编程学习资源,适合初学者及有一定基础的开发者。这份笔记以Java 5.0版本为基础,详细讲解了Java语言的核心概念和技术,旨在帮助读者建立起坚实的编程基础,进一步...
### Selenium Java 学习笔记知识点总结 #### 一、Selenium简介与安装配置 - **Selenium概述**:Selenium 是一套完整的Web应用程序测试工具,主要用于自动化Web应用测试,能够模拟用户行为,支持多种浏览器环境。 - ...
从给定的文件信息中,我们可以提炼出一系列关于Java编程语言的重要知识点,这些知识点涵盖了学习策略、控制流、格式化输出、数据类型处理以及数组初始化等方面。以下是对这些知识点的详细解析: ### 学习策略:...
Java学习笔记及设计模式是程序员进阶过程中必不可少的资源,涵盖了广泛的Java基础知识和高级概念,同时结合了设计模式这一软件工程的重要组成部分。本资源集合旨在帮助开发者深化对Java语言的理解,提升编程技能,并...
《Effective Java》是Java开发领域的经典著作,作者Joshua Bloch深入浅出地阐述了编写高效、健壮的Java代码的技巧和最佳实践。以下是对该书部分内容的详细解释: 1. **产生和销毁对象** - Item1:静态工厂方法相比...
本篇学习笔记将深入探讨如何在Java中对日期进行排序,主要包括以下几个方面: 1. **日期对象的创建** 在Java中,我们可以使用`java.util.Date`类或者`java.time`包中的`LocalDate`, `LocalDateTime`等类来表示日期...
Java分布式应用学习笔记 在Java世界中,分布式应用是指由多个独立组件通过网络通信协同工作的系统。这种架构模式常用于构建大规模、高可用性、可扩展的系统。本笔记将深入探讨Java分布式应用的核心概念、技术和实践...
从提供的文件内容来看,这份“Java学习笔记”不仅涵盖了Java语言的基础知识,还涉及了Unix系统操作、数据库技术、Web开发等多个层面的知识点。 首先,文件标题“Java学习笔记”直接指出了内容的主题,即学习Java...
Java学习笔记涵盖了许多重要的编程概念和技术,特别是在JavaMail、Oracle数据库管理和索引、自定义对象序列化以及数据库导入导出方面。以下是对这些主题的详细解释: 1. **JavaMail**: JavaMail是一个用于处理...
### Java学习笔记:开发环境搭建JDK+Tomcat+Eclipse #### 一、开发工具获取 ##### 1、开发工具包JDK JDK(Java Development Kit)是Java语言的基础软件包,它提供了编译、运行Java程序所需的所有工具。 - **下载...
### Java 学习笔记极其详细版(包括一些个人色彩不仅仅是纯笔记) #### 内容概览 本学习笔记旨在提供一份全面深入的Java教程,它不仅涵盖了Java的基础知识,还包括了作者个人的见解和实践经验。适合Java初学者、...