zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    web安全之XSS基础-常见编码科普
    Web安全之URL跳转科普
    防止CSRF跨站请求伪造
    Web渗透之mssql LOG备份getshell
    Web渗透之mssql2005 差异备份getshell
    Web渗透之mssql差异备份getshell
    Web安全之url跳转漏洞及bypass总结
    一次对php大马的后门的简单分析
    一些渗透测试基础面试题
    MySQL数据恢复和复制对InnoDB锁机制的影响
  • 原文地址:https://www.cnblogs.com/ShawnYang/p/7488333.html
Copyright © 2011-2022 走看看