原文:http://blog.csdn.net/llmmll08/article/details/70217120

本文介绍 SLF4J 和 Logback 在 Maven 项目中的用法,包括日志框架的依赖、使用,以及 XML 配置文件的引入。本文的精华内容翻译 Base22,文章来源见文末。

1. 将框架 SLF4J & Logback 添加到 Maven 项目中。

通过简单的几个步骤,即可将 SLF4J 和 Logback 添加到 Maven 项目中。

1.1 将依赖添加到 Maven 的 POM.xml 中

直接在 Maven Repository 中搜索 Logback, 选择使用量最大的「Logback Classic Module」, 将该依赖添加到 POM.xml 中,例如:

<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>

将会在项目中导入如下类库:

  • logback-classic.x.x.x.jar
  • logback-core.x.x.x.jar
  • slf4j-api-x.x.x.jar

1.2 使用 XML 配置文件初始化

将 XML 配置文件 logback.xml 和 logback-test.xml 按照以下层次结构添加到项目中:

  • src

    • main

      • resources

        • logback.xml
    • test 
      • resources

        • logback-test.xml

其中,两配置文件的内容如下:

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
</appender> <logger name="com.base22" level="TRACE"/> <root level="debug">
<appender-ref ref="STDOUT"/>
</root> </configuration>

logback-test.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
</appender> <root level="debug">
<appender-ref ref="STDOUT"/>
</root> </configuration>

在 logback.xml 中可以看到,包 com.base22 的 level 是 TRACE, 通过设置 logger 节点,可以指定特定包的 level。

除了特定包之外,项目的日志 level 均由 root 节点指定。

2. Log 的基本使用

使用 Log 时,需要在每个 class 文件中进行初始化操作。

首先导入如下内容:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
  • 1
  • 2
  • 1
  • 2

之后可使用如下语句引入 log :

static final Logger logger = LoggerFactory.getLogger(MyClassName.class);
  • 1
  • 1

其中 MyClassName 改为该类的类名。

亦可在类的构造方法中使用如下语句初始化:

Logger logger = LoggerFactory.getLogger(getClass());
  • 1
  • 1

之后可在方法中调用如下语句进行 log 操作:

logger.debug("debug");
logger.info("info");
  • 1
  • 2
  • 1
  • 2

3. 日志的级别 (level) 参考

日志的级别 (level) 由低到高排列如下:

  • trace
  • debug
  • info
  • warn
  • error

SLF4J 和 Logback 在 Maven 项目中的使用方法的更多相关文章

  1. 如何查看Maven项目中的jar包依赖树情况

    对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn ...

  2. 在maven项目中解决第三方jar包依赖的问题

    在maven项目中,对于那些在maven仓库中不存在的第三方jar,依赖解决通常有如下解决方法: 方法1:直接将jar包拷贝到项目指定目录下,然后在pom文件中指定依赖类型为system,如: < ...

  3. Java项目和maven项目中如何获取&设置配置文件中的属性

    通常情况下,我们会在一些配置文件文件中配置一些属性.如: indexPath = E\:\\Tomcat_7.0\\webapps\\ipost_stage\\lucene\\index imgUpl ...

  4. Maven项目中,系统设置的CLASSPATH环境变量问题

    在Maven项目中,系统的CLASSPATH环境变量失效了吗?在用Maven开发登录网站时,servlet-api出现错误,jdbc也出现错误,都是ClassNotFoundException,但这两 ...

  5. Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图(转载)

    Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea   ...

  6. maven项目中利用jmeter-maven-plugin插件直接执行jmeter jmx脚本

    jmeter脚本需要执行脚本,先得下载jmeter并解压jmeter.如想在maven项目中通过mvn install 直接执行jmx文件,这样就能在测试服务器上通过一个命令就能执行下性能测试了,给自 ...

  7. IDEA的maven项目中 静态文件编译的问题

    IDEA的maven项目中,默认源代码目录下的xml等资源文件并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉. 如果使用的是Eclipse,Eclipse的src目录下的xml等资源 ...

  8. 在Maven项目中,指定使用阿里云仓库下载jar包

    Maven项目中,在pom.xml的</project>标签之前加入一下标签,指定使用阿里云仓库下载jar包. <!-- 使用aliyun maven --> <repo ...

  9. maven项目中的报错问题——Dynamic Web Module 3.0 requires Java 1.6 or newer.

    转自:http://www.cnblogs.com/beppezhang/p/5919221.html maven项目中的报错问题——Dynamic Web Module 3.0 requires J ...

随机推荐

  1. 有意思的String字符工具类

    对String的操作是Java攻城师必备的,一个优秀的攻城师是懒惰,他会把自己的一些常见的代码写成可提供拓展和复用的工具类或者工具库,这些是这些优秀工程师的法宝. 我就先从String这个基本操作开始 ...

  2. Code::Blocks使用与调试一条龙

    CodeBlocks创建C语言工程版本13.12   选择"create a new project" 选择第四个,点击"go" 4 选择"C&quo ...

  3. Spring启动执行流程梳理

    注:本文梳理启动流程使用的Spring版本:4.0.2.RELEASE 使用spring配置,都需要在web.xml中配置一个spring的监听器和启动参数(context-param),如下: &l ...

  4. B3. Cocurrent 线程的状态

    [概述] 1). java.lang.Thread 类中定义了一个枚举 State, 定义了线程的六种状态:NEW.RUNNABLE.BLOCKED.WAITING.TIMED_WAITING.TER ...

  5. 第3节 mapreduce高级:2、3、课程大纲&共同好友求取步骤一、二

    第五天课程大纲:1.社交粉丝的数据分析:求共同好友2.倒排索引的建立3.自定义inputFormat合并小文件 4.自定义outputformat5.分组求topN6.MapReduce的其他补充 了 ...

  6. 修改python注册表

    转自:http://blog.csdn.net/u014680513/article/details/51005650 # script to register Python 2.0 or later ...

  7. 秋招复习-C++( 一)

    Linux/Unix编程部分 1.进程间通信方式:信号,信号量,消息队列,共享内存,套接字Socket 2.ipcs: Linux/Unix下的命令,可以用来查看当前系统中所使用的进程间通信方式的各种 ...

  8. 【design pattern】工厂方法模式和抽象工厂模式

    前言 设计模式分为三大类: 创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式: 结构型模式:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式: 行为型模式 ...

  9. MySQL-----删

    删 **清空数据库内容** delete from 数据库表名; ----清内容,但是自增列的数不清. truncate table 数据库表名; --------自增列的数也清. **清除指定的行数 ...

  10. python 用 PIL 模块 画验证码

    PIL 简单绘画 def get_code_img(request): from PIL import Image, ImageDraw, ImageFont import random def ra ...