• log4j2单独的配置与使用&log4j2+slf4j的结合的配置与使用


    转载自:https://github.com/iamyong

    一、log4j2单独的配置与使用

    • 所用jar文件

    log4j-api-2.8.2.jar

    log4j-core-2.8.2.jar

    • 配置文件 log4j2.xml
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <configuration status="error">
     3     <!-- 先定义所有的appender -->
     4     <appenders>
     5        <!--  这个输出控制台的配置 -->
     6         <Console name="Console" target="SYSTEM_OUT">
     7             <!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
     8             <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
     9             <!-- 这个都知道是输出日志的格式 -->
    10             <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
    11         </Console>
    12        <!--  文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用 -->
    13         <File name="log" fileName="log/test.log" append="false">
    14             <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
    15         </File>
    16        <!--  这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
    17         <RollingFile name="RollingFile" fileName="/home/webservice/ftp_home/Ganso_mst_Shop_IF.log"
    18                      filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
    19             <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
    20             <SizeBasedTriggeringPolicy size="50MB"/>
    21         </RollingFile>
    22     </appenders>
    23   <!--   然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
    24     <loggers>
    25        <!--  建立一个默认的root的logger -->
    26         <root level="trace">
    27             <appender-ref ref="RollingFile"/>
    28             <appender-ref ref="Console"/>
    29         </root>
    30     </loggers>
    31 </configuration> 
    • 使用:
     1 import org.apache.logging.log4j.LogManager;
     2 import org.apache.logging.log4j.Logger;
     3 public class Test{
     4 //定义LOG
     5     static Logger logger = LogManager.getLogger();
     6     //或者(static Logger logger = LogManager.getLogger(Test.class.getName());)
     7     //(static Logger logger = LogManager.getLogger(Test.class);)
     8 
     9  public static void main(String[] args) throws Exception {
    10         logger.info("{}{}",1234455,"djsfhsdjhf");
    11         logger.debug("this is a test"); 
    12     }
    13 }

    二、log4j2+slf4j的结合的配置与使用

    • 所用jar

    log4j-api-2.8.2.jar

    log4j-core-2.8.2.jar

    log4j-slf4j-impl-2.8.2.jar

    slf4j-api-1.7.25.jar

    • 配置文件log4j2.xml
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <configuration status="error">
     3     <!-- 先定义所有的appender -->
     4     <appenders>
     5        <!--  这个输出控制台的配置 -->
     6         <Console name="Console" target="SYSTEM_OUT">
     7             <!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
     8             <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
     9             <!-- 这个都知道是输出日志的格式 -->
    10             <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
    11         </Console>
    12        <!--  文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用 -->
    13         <File name="log" fileName="log/test.log" append="false">
    14             <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
    15         </File>
    16        <!--  这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
    17         <RollingFile name="RollingFile" fileName="/home/webservice/ftp_home/Ganso_mst_Shop_IF.log"
    18                      filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
    19             <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
    20             <SizeBasedTriggeringPolicy size="50MB"/>
    21         </RollingFile>
    22     </appenders>
    23   <!--   然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
    24     <loggers>
    25        <!--  建立一个默认的root的logger -->
    26         <root level="trace">
    27             <appender-ref ref="RollingFile"/>
    28             <appender-ref ref="Console"/>
    29         </root>
    30     </loggers>
    31 </configuration>
    • 使用
     1 import org.slf4j.Logger;
     2 import org.slf4j.LoggerFactory;
     3 
     4 public class Test {
     5     private static Logger logger =        
     6     LoggerFactory.getLogger(Thread.currentThread().getStackTrace()[1].getClassName());
     7     public static void main(String[] args) throws Exception {
     8         logger.info("{}以及{}","张三","李四");    
     9     }
    10 
    11 }
  • 相关阅读:
    学习进度(2)
    模拟退火 [JSOI2004]平衡点 / 吊打XXX
    快读快写 O3 优化
    卡特兰数(Catalan)公式、证明、代码、典例
    树状数组 :单点修改,区间查询
    倍增 [模板]最近公共祖先LCA
    对测 【模拟】
    对测 【离线DP+二分】
    模拟退火 (骗分算法)
    基础数论入门
  • 原文地址:https://www.cnblogs.com/ShawnYang/p/7488333.html
Copyright © 2020-2023  润新知