java 中使用lo4j2 - Go语言中文社区

java 中使用lo4j2


log4j 2是log4j的升级版

log4j 2简介:http://logging.apache.org/log4j/2.x/manual/index.html

1. 下载log4j 2

log4j 2官网:http://logging.apache.org/log4j/2.x/

log4j 2下载页面:http://logging.apache.org/log4j/2.x/download.html

我下载的是”apache-log4j-2.0-beta9-bin.zip”,解压该文件,将log4j-api-2.0-beta9.jar、log4j-core-2.0-beta9.jar导入项目,即可使用log4j 2

2. 初识log4j 2

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. package log4j2;  
  2.   
  3. import org.apache.logging.log4j.LogManager;  
  4. import org.apache.logging.log4j.Logger;  
  5.   
  6. public class Test01 {  
  7.     public static void main(String[] args) {  
  8.         Logger logger = LogManager.getLogger(Test01.class.getName());   
  9.         logger.trace("trace");  
  10.         logger.debug("debug");  
  11.         logger.info("hello");  
  12.         logger.warn("warn");  
  13.         logger.error("error");  
  14.         logger.fatal("fatal");  
  15.     }  
  16.   
  17. }  

Output

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. 12:24:25.398 [main] ERROR log4j2.Test01 - error  
  2. 12:24:25.401 [main] FATAL log4j2.Test01 - fatal  

代码中写了6种输出,为什么只出来”error”,”fatal”呢?

原来log4j 2初始化时,自动从src目录加载配置文件。配置文件的格式有两种:jsonxml

配置文件的优先级(从高到低):

log4j2-test.json(或log4j2-test.jsn

log4j2-test.xml

log4j2.json(log4j2.jsn)

log4j2.xml

默认配置文件

log4j 2初始化时,优先从src目录下找”log4j2-test.json(或log4j2-test.jsn”,如果没找到,会继续找”log4j2-test.xml”,以此类推

刚才的例子中,src目录下没有配置文件,因此log4j 2将使用默认配置文件

默认配置文件由DefaultConfiguration类提供。DefaultConfiguration内容:

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. * Licensed to the Apache Software Foundation (ASF) under one or more  
  2. package org.apache.logging.log4j.core.config;  
  3.   
  4. import java.io.Serializable;  
  5.   
  6. import org.apache.logging.log4j.Level;  
  7. import org.apache.logging.log4j.core.Appender;  
  8. import org.apache.logging.log4j.core.Layout;  
  9. import org.apache.logging.log4j.core.appender.ConsoleAppender;  
  10. import org.apache.logging.log4j.core.layout.PatternLayout;  
  11. import org.apache.logging.log4j.util.PropertiesUtil;  
  12.   
  13. /** 
  14.  * The default configuration writes all output to the Console using the default logging level. You configure default 
  15.  * logging level by setting the system property "org.apache.logging.log4j.level" to a level name. If you do not 
  16.  * specify the property, Log4j uses the ERROR Level. Log Events will be printed using the basic formatting provided 
  17.  * by each Message. 
  18.  */  
  19. public class DefaultConfiguration extends BaseConfiguration {  
  20.   
  21.     /** 
  22.      * The name of the default configuration. 
  23.      */  
  24.     public static final String DEFAULT_NAME = "Default";  
  25.     /** 
  26.      * The System Property used to specify the logging level. 
  27.      */  
  28.     public static final String DEFAULT_LEVEL = "org.apache.logging.log4j.level";  
  29.   
  30.     /** 
  31.      * Constructor to create the default configuration. 
  32.      */  
  33.     public DefaultConfiguration() {  
  34.   
  35.         setName(DEFAULT_NAME);  
  36.         final Layout<? extends Serializable> layout =  
  37.                 PatternLayout.createLayout("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"nullnullnullnull);  
  38.         final Appender appender =  
  39.                 ConsoleAppender.createAppender(layout, null"SYSTEM_OUT""Console""false""true");  
  40.         appender.start();  
  41.         addAppender(appender);  
  42.         final LoggerConfig root = getRootLogger();  
  43.         root.addAppender(appender, nullnull);  
  44.   
  45.         final String levelName = PropertiesUtil.getProperties().getStringProperty(DEFAULT_LEVEL);  
  46.         final Level level = levelName != null && Level.valueOf(levelName) != null ?  
  47.             Level.valueOf(levelName) : Level.ERROR;  
  48.         root.setLevel(level);  
  49.     }  
  50.   
  51.     @Override  
  52.     protected void doConfigure() {  
  53.     }  
  54. }  

DefaultConfiguration提供的默认配置等同于如下配置:

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Configuration status="WARN">  
  3.   <Appenders>  
  4.     <Console name="Console"  版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
    原文链接:https://blog.csdn.net/huang_550/article/details/50837206
    站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-25 01:07:46
  • 阅读 ( 1045 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢