zoukankan      html  css  js  c++  java
  • log4j2+slf4j的maven包引入和log4j2的配置

    pom.xml中配置
    <!-- log4j2的包:建议2.6以上 开始-->
    <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.8.2</version>
    </dependency>
    <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.8.2</version>
    </dependency>
    <!-- log4j2的包:建议2.6以上 结束-->

    <!-- log4j2和slf4j桥接依赖 https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
    <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.8.2</version>
    </dependency>

    <!-- slf4j依赖 https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
    </dependency>

    log4j2.xml (将log4j2.xml放在classpath路径下,比如我的maven项目中的路径:  ITEM/src/main/resources/log4j2.xml)
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
    <!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
    <!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
    <Configuration status="OFF" monitorInterval="300">
    <properties>
    <property name="LOG_HOME">/logs</property>
    </properties>
    <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
    <!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
    <ThresholdFilter level="TRACE" onMatch="ACCEPT" onMismatch="DENY"/>
    <!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) 优先级,即DEBUG,INFO,WARN,ERROR,
    <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="ACCEPT"/> -->
    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
    </Console>
    <!-- 消息在粗粒度级别上突出强调应用程序的运行过程 -->
    <RollingRandomAccessFile name="InfoFile"
    fileName="${LOG_HOME}/info.log"
    filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
    <Filters>
    <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL" />
    <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
    </Filters>
    <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
    <Policies>
    <TimeBasedTriggeringPolicy />
    <SizeBasedTriggeringPolicy size="10 MB" />
    </Policies>
    <DefaultRolloverStrategy max="20" />
    </RollingRandomAccessFile>
    <!-- 输出错误信息日志 -->
    <RollingRandomAccessFile name="ErrorFile"
    fileName="${LOG_HOME}/error.log"
    filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
    <Filters>
    <ThresholdFilter level="fatal" onMatch="DENY" onMismatch="NEUTRAL" />
    <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY" />
    </Filters>
    <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
    <Policies>
    <TimeBasedTriggeringPolicy />
    <SizeBasedTriggeringPolicy size="10 MB" />
    </Policies>
    <DefaultRolloverStrategy max="20" />
    </RollingRandomAccessFile>
    <!-- 输出每个严重的错误事件将会导致应用程序的退出的日志. -->
    <RollingRandomAccessFile name="FatalFile"
    fileName="${LOG_HOME}/fatal.log"
    filePattern="${LOG_HOME}/$${date:yyyy-MM}/fatal-%d{yyyy-MM-dd}-%i.log">
    <Filters>
    <ThresholdFilter level="fatal" onMatch="ACCEPT" onMismatch="DENY" />
    </Filters>
    <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
    <Policies>
    <TimeBasedTriggeringPolicy />
    <SizeBasedTriggeringPolicy size="10 MB" />
    </Policies>
    <DefaultRolloverStrategy max="20" />
    </RollingRandomAccessFile>
    <!-- 这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
    <RollingFile name="RollingFile" fileName="${LOG_HOME}/web.log"
    filePattern="${LOG_HOME}/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-%i.log.gz">
    <PatternLayout pattern="[%d{yyyy-MM-dd 'at' HH:mm:ss z}] [%-5p] %l - %m%n"/>
    <SizeBasedTriggeringPolicy size="2MB"/>
    </RollingFile>
    </Appenders>

    <Loggers>

    <Root level="TRACE"> <!-- 这里的TRACE控制总下面的各类日志的日志级别,凡是高于此级别的都会在各自的级别文件中生成-->
    <AppenderRef ref="RollingFile" />
    <AppenderRef ref="Console" />
    <AppenderRef ref="InfoFile" />
    <AppenderRef ref="ErrorFile" />
    <AppenderRef ref="FatalFile" />
    </Root>
    </Loggers>
    </Configuration>

  • 相关阅读:
    C#网络编程(异步传输字符串)
    C#网络编程(同步传输字符串)
    C#网络编程(基本概念和操作)
    Asp.Net 构架(HttpModule 介绍)
    Asp.Net 构架(Http Handler 介绍)
    Asp.Net构架(Http请求处理流程)
    XML的应用 ---- 从一个范例看xml数据、xsd验证、xslt样式
    jQuery的ajax跨域实现
    常见26个jquery使用技巧详解
    常用Request对象获取请求信息
  • 原文地址:https://www.cnblogs.com/littleapple/p/10880318.html
Copyright © 2011-2022 走看看