美文网首页
Log4j2一定入门教程

Log4j2一定入门教程

作者: 啥也不说了 | 来源:发表于2016-12-05 23:39 被阅读888次

目标

文章目标

1、让你可以入门,可以输出日志到控制台和文件中,但不讲输出格式方面的东西;2、说明下Log4j2中的一些概念

目标人群

以前对Log4j没有了解或者了解很少的人或者你就想看看作者多菜的人。但是至少要对日志有个基本了解,例如日志级别。

简介

前几天公司的同事说要使用Log4j2,要抛弃公司自己封装的那一套日志框架了。以前就有从头细致学习Log4j2日志的想法,借着机会就系统的学习下吧!但是在入手的过程中,发现许多基础概念没有,然后别人写的入门教程看不懂,有疑问也不知道找谁,那就自己上,有问题自己解决。本篇主要介绍我当时疑惑的问题,无法入门。

最简单的配置

1、需求

简单的把info级别的日志打印到控制台。

show me code。

也可以看开源代码的start模块

package learn.log4j2.start;
/** * Created by pengge on 2016/12/7. 
* Purpose: 入门代码
*/
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class QuicklyStart {    
      private static final Logger LOGGER = LogManager.getLogger(QuicklyStart.class);    
      public static void main(String[] args) {        
          LOGGER.warn("logger:warn");       
          LOGGER.error("logger:error");        
          LOGGER.info("logger:info");    
      }
}

配置文件。注意文件名必须为:log4j2.xml,且必须放到class目录

<?xml version="1.0" encoding="utf-8"?>
<configuration status="warn">    
   <appenders>       
     <Console name="Console" target="SYSTEM_OUT" follow="false">            
        <PatternLayout pattern="%5p:%d{yyyy-MM-dd HH:mm:ss.SSS}[%M] %m %n"/>        
     </Console>  
    </appenders>   
   <loggers>       
     <root level="info">          
       <AppenderRef ref="Console"/>        
     </root>   
   </loggers>
</configuration>

这样就可以简单的把日志打印到控制台了。

代码解释

1、xml代码注释

代码主要分为两部分,appenders部分和Loggers部分。其中appenders主要是来配置输出方式,例如输出目的地和输出格式;loggers配置的是创建日志时的名称。log4j2创建日志时有三种方式,1)默认root、2)指定名称、3)父包名。这里用的是全名称匹配,后面会给个事例进行对比。

2、Java代码注释

Java代码很简单,通过调用LogManager.getLogger()方法,使用类名创建了个日志对象。

不同创建对比

public class Two {    
  private static final Logger rootLogger = LogManager.getRootLogger();  
  private static final Logger nameLogger = LogManager.getLogger("name");    
  private static final Logger parentLogger = LogManager.getLogger(Two.class);    
  public static void main(String[] args) {        
    rootLogger.warn("rootLogger:warn");        
    rootLogger.error("rootLogger:error");        
    rootLogger.info("rootLogger:info");        
    nameLogger.warn("nameLogger:warn");        
    nameLogger.error("nameLogger:error");        
    nameLogger.info("nameLogger:info");        
    parentLogger.warn("parentLogger:warn");        
    parentLogger.error("parentLogger:error");        
    parentLogger.info("parentLogger:info");    
  }
}
<?xml version="1.0" encoding="utf-8"?><configuration status="warn">    
  <appenders>        
    <Console name="Console" target="SYSTEM_OUT" follow="false">            
      <PatternLayout pattern="%5p:%d{yyyy-MM-dd HH:mm:ss.SSS}[%M] %m %n"/>        
    </Console>    
  </appenders>   
  <loggers>       
    <logger name="name" level="warn" additivity="false">            
      <AppenderRef ref="Console"/>        
    </logger>        
    <logger name="learn.log4j2" level="error" additivity="false">            
      <AppenderRef ref="Console"/>        
    </logger>        
    <root level="info">            
      <AppenderRef ref="Console"/>        
    </root>    
  </loggers>
</configuration>

上面的例子是对不同方式创建的log进行了对比,如果输出结果,就会明白。

相关文章

  • Log4j2一定入门教程

    目标 文章目标 1、让你可以入门,可以输出日志到控制台和文件中,但不讲输出格式方面的东西;2、说明下Log4j2中...

  • SpringBoot之log4j2

    SpringBoot之log4j2 目录 简单介绍 log4j2配置 详细软文 简单介绍 log4j2是log4j...

  • log4j2使用详解

    本文主要介绍log4j2的使用,分别从log4j2的层级结构、log4j2的配置-详解appender属性配置、l...

  • 目录

    集成log4j2

  • SpringBoot - 日志集成 Log4j2

    Log4j2 引入log4j2 依赖,spring-boot-starter-log4j2排除Springboot...

  • Redux 入门教程(React 进阶)(20 个视频)

    Redux 入门教程(React 进阶) Redux 入门教程 #1 课程介绍「05:29」 Redux 入门教程...

  • 结果可视化 - Gnuplot

    教程1. gnuplot 入门教程 1 | gnuplot 入门教程 2 | gnuplot 入门教程 3 | g...

  • elasticsearch+kibana安装

    elasticsearch入门教程: 参考阮一峰的入门教程:全文搜索引擎 Elasticsearch 入门教程 里...

  • log4j2发送消息至Kafka

    title: 自定义log4j2发送日志到Kafka tags: log4j2,kafka 为了给公司的大数据平台...

  • Redux-基础

    参考Redux 入门教程(一):基本用法 Redux 入门教程(二):中间件与异步操作 Redux 入门教程(...

网友评论

      本文标题:Log4j2一定入门教程

      本文链接:https://www.haomeiwen.com/subject/qlbhmttx.html