`

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

    博客分类:
  • java
阅读更多
logback系列之一:输出日志到控制台
logback系列之二:输出日志到文件
logback系列之三:输出日志到文件(滚动)
logback系列之四:输出日志到不同文件


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

    <logger name="com.john.logging.b" level="INFO" additivity="false">
分享到:
评论

相关推荐

    Logback所需的jar包

    appender:指定日志输出的媒介,即输出地(可以是控制台,可以是文件,远程套接字服务器等); layout:用来格式化日志信息的输出。 二.logback优于log4的原因 Logback对log4j进行了大量改进,Logback就是更好的log...

    springboot 日志配置文件 logback

    默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。 日志级别(log level):用来控制日志信息的输出,从高到低分为共分为七个等级: A:off 最高等级,用于关闭所有日志记录。 B:fatal ...

    Logback使用

    对Logback一些常用的配置进行整包,其中包括配置在控制台输出,输出到指定的文件中,自定义日志布局格式。

    JAVA使用Logback日志框架记录应用程序的运行日志.txt

    这个代码实现了一个简单的应用程序,...这些日志信息将被Logback框架记录下来并输出到控制台或指定的文件中。这个例子展示了如何使用Java的日志框架来实现应用程序的日志记录功能,可以提高程序的可维护性和可追踪性。

    Linux下tomcat日志catalina.out按天(/周)分割

    针对linux环境上tomcat不断输出到catalina.out文件的问题,提供一个按天分割catalina.out的脚本,以及操作说明。绝对可用!

    aliyun-log-logback-appender

    您也可以控制每个日志的输出格​​式。 您可以通过日志级别控制日志的生成过程。 最有趣的是,您可以通过配置文件完成上述操作,而无需进行任何代码修改。 您可以通过Aliyun Log Logback Appender将日志的目标位置...

    logback-spring.xml

    logback记录日志,多环境生产、开发、信息配置,记录到控制台和文件,包含Error、Info、Warn等

    Logback配置文件

    Logback日志系统的特性都是通过核心配置文件logback.xml控制的,将其放置于java项目的src目录下通过核心配置文件,可以控制日志的输出位置,如控制台和文件系统、日志的输出格式和日志的输出级别。并且可以控制日志...

    谈谈你了解的springboot日志框架

    对于我们日常开发日志是经常使用的,当然以前的我们可能还傻傻的各种 System.out.println("重要数据") 在控制台输出各种重要数据呢,投入生产的时候再注释掉。到现在为止呢,已经有很多日志可供选择了,而市面上常见...

    lofka:一款性能高,兼容性好,输出优美的日志收集管理系统

    tail -f /var/log/nginx/access.log|grep xxxxxFUCKxxxx日志输出多了看不到关键点,输出等级高了看不到系列?多个服务器的日志是否看起来很痛苦?常常使用TMUX开多个小窗口排查问题在哪里,眼睛都看不过来。快试试 ...

    Spring Boot 日志配置方法(超详细)

    默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。下面通过本文给大家介绍Spring Boot 日志配置方法详解,感兴趣的朋友参考下吧

    会话控制者:面试

    JDk版本: 11.0编译/运行编译//不跳过测试mvn clean package //跳过...ps:支持动态调整存活时间功能概述:日志采用slf4j和logback做日志组件同时向控制台和文件输出日志,文件输出错误级别的日志单独放置log_error.l

    阿里云java源码-aliyun-log-log4j2-appender:aliyun-log-log4j2-appender

    您还可以控制每个日志的输出格​​式。 您可以通过日志级别来控制日志的生成过程。 最有趣的是你可以通过一个配置文件完成以上的事情,不需要任何代码修改。 您可以通过Aliyun Log Log4j2 Appender将您的日志目的地...

    silence-boot:SpringBoot2.x开发微信后台管理系统:基于RuoYi3.4版本和SpringBoot2.1.1.RELEASE升级模块内置后台权限管理系统,在内置的框架上增加了集成微信开发框架和lombok代码插件,开发更便捷

    2,设置控制台输出logback彩色高亮日志显示 3,修改登录界面,优化登录界面效果 4,修改登录进入首页后的主页图 5,添加微信公众号开发基础框架模块 6,约会依赖weixin-java-mp3.5.0 7,application.yml添加微信...

    Spring Boot中文文档.rar

    控制台输出 26.2.1.彩色编码输出 26.3.文件输出 26.4.日志级别 26.5.日志组 26.6.自定义日志配置 26.7.Logback Extensions 26.7.1.特定于配置文件的配置 26.7.2.环境属性 27. JSON ...

    springboot参考指南

    控制台输出 iii. 25.3. 文件输出 iv. 25.4. 日志级别 v. 25.5. 自定义日志配置 v. 26. 开发Web应用 i. 26.1. Spring Web MVC框架 i. 26.1.1. Spring MVC自动配置 ii. 26.1.2. HttpMessageConverters Spring Boot...

Global site tag (gtag.js) - Google Analytics