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

来源:互联网 发布:移动网络信号放大器 编辑:程序博客网 时间:2024/06/03 22:45

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

一 . log4j2单独的配置与使用

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




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

  • 所用jar
log4j-api-2.8.2.jarlog4j-core-2.8.2.jarlog4j-slf4j-impl-2.8.2.jarslf4j-api-1.7.25.jar
  • 配置文件log4j2.xml
<?xml version="1.0" encoding="UTF-8"?><configuration status="error">    <!-- 先定义所有的appender -->    <appenders>       <!--  这个输出控制台的配置 -->        <Console name="Console" target="SYSTEM_OUT">            <!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->            <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>            <!-- 这个都知道是输出日志的格式 -->            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>        </Console>       <!--  文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用 -->        <File name="log" fileName="log/test.log" append="false">            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>        </File>       <!--  这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->        <RollingFile name="RollingFile" fileName="/home/webservice/ftp_home/Ganso_mst_Shop_IF.log"                     filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>            <SizeBasedTriggeringPolicy size="50MB"/>        </RollingFile>    </appenders>  <!--   然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->    <loggers>       <!--  建立一个默认的root的logger -->        <root level="trace">            <appender-ref ref="RollingFile"/>            <appender-ref ref="Console"/>        </root>    </loggers></configuration> 
  • 使用
import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class Test {    private static Logger logger =            LoggerFactory.getLogger(Thread.currentThread().getStackTrace()[1].getClassName());    public static void main(String[] args) throws Exception {        logger.info("{}以及{}","张三","李四");        }}
原创粉丝点击