文档章节

logback系列之一:输出日志到控制台

海子_枫子
 海子_枫子
发布于 2015/04/30 16:26
字数 439
阅读 13
收藏 0
s slf4j是Java的简单日志门面API,很多日志实现都可以与之集成,如JDK logging (java.util.logging), log4j和logback。优点是代码里不会有具体的日志实现类,减少侵入。 

与log4j相比,logback具有一些优势,如更好的性能、更少的内存使用、自动重加载配置文件以及过滤功能等。 

下面简要介绍下logback的使用: 

1. 在pom.xml文件中添加依赖: 

<properties>
    <logback.version>1.0.11</logback.version>
    <slf4j.api.version>1.7.5</slf4j.api.version>
  </properties>
  
  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.api.version}</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>${logback.version}</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>${logback.version}</version>
    </dependency>
  </dependencies>

2. 在类路径下新建logback.xml或logback-test.xml(优先级高)文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoder的默认实现类是ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- name值可以是包名或具体的类名:该包(包括子包)下的类或该类将采用此logger -->
    <logger name="com.john.logging.b" level="INFO">
        <appender-ref ref="STDOUT" />
    </logger>
    
    <!-- root的默认level是DEBUG -->
    <root level="DEBUG">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

3. 测试类: 

package com.john.logging.a;

public class Reconciliation {
    private static final Logger log = LoggerFactory.getLogger(Reconciliation.class);
    public void reconciliate() {
        String name = "conciliate";
        log.info("Hello from reconciliate");
        log.debug("My name is {}", name);
    }
}
package com.john.logging.b;
public class Corruption {
    // logger名称为类的全限定名
    private static final Logger log = LoggerFactory.getLogger(Corruption.class);
    public void corrupt() {
        String name = "allegation";
        log.info("Hello from corrupt.");
        log.debug("My name is {}", name);
    }
}

输出: 

11:50:16.266 [main] INFO  c.j.l.a.Reconciliation - Hello from reconciliate 
11:50:16.270 [main] DEBUG c.j.l.a.Reconciliation - My name is conciliate 
11:50:16.271 [main] INFO  c.j.l.b.Corruption - Hello from corrupt. 
11:50:16.271 [main] INFO  c.j.l.b.Corruption - Hello from corrupt. 

所有logger的始祖是ROOT,默认会继承ROOT的配置,因此Corruption中的日志会打印两次。 
解决:logger的additivity属性设置为false 

Xml代码  

<logger name="com.john.logging.b" level="INFO" additivity="false">


本文转载自:http://czj4451.iteye.com/blog/1974831

海子_枫子
粉丝 4
博文 40
码字总数 3371
作品 0
南京
程序员
私信 提问
Spring Boot学习笔记—日志

开发应用时,日志框架的依赖是不可避免的。应用依赖的其他框架中,可能又依赖了其他不同的框架,例如你的应用使用的Logback,但Spring系列框架使用的Log4j,还有某某框架依赖的Commons Loggi...

chace0120
2015/12/23
3.6K
0
logback系列之一:输出日志到控制台

slf4j是Java的简单日志门面API,很多日志实现都可以与之集成,如JDK logging (java.util.logging), log4j和logback。优点是代码里不会有具体的日志实现类,减少侵入。 与log4j相比,logback...

小代码2016
2016/03/25
154
0
spring boot(8)默认日志logback配置

1 日志简介 Spring Boot使用Commons Logging记录所有内部日志,但是它将底层日志实现打开,为Java.Util.Logging,Log4J2和Logback提供默认配置。 在每个案例中,loggers都预先配置,以使用控...

刘胜球
2017/10/31
388
0
Spring Boot干货系列:(七)默认日志logback配置解析

转载自:点击打开链接 前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如...

u012843873
2018/04/23
0
0
Java深入 - logback的配置和使用

1. logback介绍 Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。log...

initphp
2014/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部