Log4j2 多个 appenders 使用详解

教程分享 > Java教程 (3586) 2023-03-28 11:29:14

概述

给定log4j2.xml是配置configure multiple appenders(例如控制台附加程序和文件附加程序)的参考。 这还将配置动态日志根路径。

Log4j 多个 appenders 配置

log4j简单配置如下,它做了这些事儿:
  1. 使用将在其中创建日志文件的动态日志根路径。 将环境变量传递为-DAPP_LOG_ROOT = c:/ temp进行配置。
  2. 演示例子在配置文件中定义的属性常量的用法,例如 LOG_PATTERN在下面的文件中。
  3. 它使用LevelRangeFilter将不同的日志级别语句记录在不同的文件中,即将调试日志记录在一个文件中并将错误日志记录在单独的文件中。
  4. 所有日志也将显示在控制台中。
 
$title(log4j2.xml)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
 
    <Properties>
        <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property>
    </Properties>
 
    <Appenders>
 
        <Console name="Console" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Console>
         
        <RollingFile name="debugLog" fileName="${sys:APP_LOG_ROOT}/application-debug.log"
            filePattern="${sys:APP_LOG_ROOT}/application-debug-%d{yyyy-MM-dd}-%i.log">
            <LevelRangeFilter minLevel="DEBUG" maxLevel="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="19500KB" />
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
         
        <RollingFile name="infoLog" fileName="${sys:APP_LOG_ROOT}/application-info.log"
            filePattern="${sys:APP_LOG_ROOT}/application-info-%d{yyyy-MM-dd}-%i.log" >
            <LevelRangeFilter minLevel="INFO" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="19500KB" />
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
         
        <RollingFile name="errorLog" fileName="${sys:APP_LOG_ROOT}/application-error.log"
            filePattern="${sys:APP_LOG_ROOT}/application-error-%d{yyyy-MM-dd}-%i.log" >
            <LevelRangeFilter minLevel="ERROR" maxLevel="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="19500KB" />
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
         
        <RollingFile name="springLog" fileName="${sys:APP_LOG_ROOT}/spring.log"
            filePattern="${sys:APP_LOG_ROOT}/spring-%d{yyyy-MM-dd}-%i.log" >
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="19500KB" />
            </Policies>
            <DefaultRolloverStrategy max="1"/>
        </RollingFile>
         
        <RollingFile name="aopLog" fileName="${sys:APP_LOG_ROOT}/application-aop.log"
            filePattern="${sys:APP_LOG_ROOT}/application-aop-%d{yyyy-MM-dd}-%i.log" >
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="19500KB" />
            </Policies>
            <DefaultRolloverStrategy max="1"/>
        </RollingFile>
         
    </Appenders>
 
    <Loggers>
     
        <Logger name="com.howtodoinjava.app.aop" additivity="false">
            <AppenderRef ref="aopLog" />
            <AppenderRef ref="Console" />
        </Logger>
         
        <Logger name="com.howtodoinjava.app" additivity="false">
            <AppenderRef ref="debugLog" />
            <AppenderRef ref="infoLog"  />
            <AppenderRef ref="errorLog" />
            <AppenderRef ref="Console"  />
        </Logger>
         
        <Logger name="org.springframework" additivity="false">
            <AppenderRef ref="springLog" />
            <AppenderRef ref="Console"/>
        </Logger>
                 
        <Root level="all">
            <AppenderRef ref="Console"/>
        </Root>
 
    </Loggers>
 
</Configuration>
 
https://www.leftso.com/article/804.html

相关文章
log4j使用,log4j框架在java编程中还是比较常见的,这里将会讲解通过log4j2的LevelRangeFilter将不同级别log存放不同文件中。
这个Log4j2示例将帮助您使用HTMLLayout配置log4j2.xml文件
简介       Apache Log4j2是对Log4j 1.x的升级,在性能上进行了重大改进,改进了配置文件的自动重装,Java 8 lambda支持和自定义日志级别,从而对Log4j 1....
概述       学习配置log4j2.properties文件以将日志语句输出到控制台,滚动文件等
概述下面的log4j2转换模式仅供参考,这样您和我就不会在每次创建/编辑log4j配置文件时浪费时间来构建这些模式
ConsoleAppender概述       Log4j2 ConsoleAppender将应用程序生成的日志事件附加到System.out或System.err中
概述       Log4j2 RollingFileAppender是一个OutputStreamAppender,它遵循有关何时应进行滚动(备份)的已配置触发策略,将日志消息写入文件
概述给定log4j2.xml是配置configure multiple appenders(例如控制台附加程序和文件附加程序)的参考
概述了解如何使用log4j LevelRangeFilter过滤器,如果LogEvent中的级别在配置的最小和最大级别范围内,则返回onMatch结果,否则返回onMismatch值
Java编程之Spring Boot 使用SLF4J Logging,spring boot,SLF4J
概述       Log4j2 ThreadContext允许您使用多个唯一的标签标记日志语句,以分析日志,同时在运行时诊断问题-主要是在多线程应用程序中,其中应用程序会在短时间内生成大量日志
modbus tcp 通讯协议在Java编程中的使用。本文主要讲解Java编程中通过modbus4j工具类来实现modbus tcp通讯协议的通讯。包括通过modbus协议读取数据,写入数据的实现。
本文章主要简单讲解目前流行的springMVC4+Spring4+MyBatis3(即SSM)框架整合
前言任何框架使用都是需要日志框架的,方便排查问题和记录一些重要信息,本文主要讲解vert.x4 结合logback日志。 引入依赖maven pom.xml&lt;d
前言引用《Vert.x 4 Web REST CRUD接口应用》项目,加入日志依赖并编码实现类似Interceptor功能处理。vert.x日志集成参考《Ver