首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在log4j2中设置AppenderRef或记录器级别

在 Log4j2 中,设置 AppenderRef 或记录器级别可以通过配置文件来完成。Log4j2 支持多种配置格式,包括 XML、JSON、YAML 和 Properties 文件。以下是如何在不同配置文件中设置 AppenderRef 和记录器级别的示例。

使用 XML 配置

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="com.example" level="debug" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>
        <Root level="error">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

使用 JSON 配置

代码语言:javascript
复制
{
  "configuration": {
    "status": "WARN",
    "appenders": {
      "console": {
        "name": "Console",
        "target": "SYSTEM_OUT",
        "PatternLayout": {
          "pattern": "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
        }
      }
    },
    "loggers": {
      "logger": {
        "name": "com.example",
        "level": "debug",
        "additivity": false,
        "appenderRef": {
          "ref": "Console"
        }
      },
      "root": {
        "level": "error",
        "appenderRef": {
          "ref": "Console"
        }
      }
    }
  }
}

使用 YAML 配置

代码语言:javascript
复制
Configuration:
  status: WARN
  Appenders:
    Console:
      name: Console
      target: SYSTEM_OUT
      PatternLayout:
        pattern: "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
  Loggers:
    Logger:
      - name: com.example
        level: debug
        additivity: false
        AppenderRef:
          - ref: Console
    Root:
      level: error
      AppenderRef:
        - ref: Console

使用 Properties 配置

代码语言:javascript
复制
status = WARN
name = PropertiesConfig

appender.console.type = Console
appender.console.name = Console
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n

logger.com.example.name = com.example
logger.com.example.level = debug
logger.com.example.additivity = false
logger.com.example.appenderRef.console.ref = Console

rootLogger.level = error
rootLogger.appenderRef.console.ref = Console

解释

  1. Appenders:定义日志输出的目标。在上述示例中,我们定义了一个 Console appender,它将日志输出到控制台。
  2. Loggers:定义日志记录器及其级别和关联的 AppenderRef。在上述示例中,我们定义了一个名为 com.example 的记录器,其日志级别为 debug,并且它引用了 Console appender。
  3. Root Logger:定义根记录器及其级别和关联的 AppenderRef。在上述示例中,根记录器的日志级别为 error,并且它引用了 Console appender。

设置记录器级别

在每种配置文件中,你可以通过设置 level 属性来定义记录器的日志级别。常见的日志级别包括 tracedebuginfowarnerrorfatal

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 日志框架

异步日志Log4j2 使用独立的线程去执行 I/O 操作,可以极大地提升应用程序的性能。 官方的测试,Log4j1/Logback/Log4j2 三个日志框架的异步日志性能比较如下图所示。...日志框架本身的日志级别,如果将 stratus 设置为较低的级别就会看到很多关于 log4j2 本身的日志,如加载 log4j2 配置文件的路径等信息 monitorInterval 含义是每隔多少秒重新读取配置文件...target:SYSTEM_OUT SYSTEM_ERR, 一般只设置默认: SYSTEM_OUT。 PatternLayout:输出格式,不设置默认为:%m%n。...如果未配置,则将使用默认根 LoggerConfig,其级别为 ERROR 且附加了 Console appender。根记录器和其他记录器之间的主要区别是:1. 根记录器没有 name 属性。2....这是 log4j2 继承机制问题, Log4j2 ,logger 是有继承关系的,root 是根节点, log4j2 ,有个 additivity 的属性,它是子 Logger 是否继承 父 Logger

1.1K20

Log4j2优雅日志打印

LoggerConfig(记录器配置):LoggerConfig对象是日志记录配置声明Logger时创建的。...Log4j 2 还支持自定义日志级别 ,下表说明了级别过滤的工作原理。,垂直标题显示 LogEvent 的级别,而水平标题显示与适当的 LoggerConfig 关联的级别。...链路追踪Id打印: 详细的日志打印可以Java代码设置链路追踪Id TraceId打印日志的时候可以将其打印出来。 下面就来详细看下满足这样5个需求的日志配置是如何实现的吧。...-- LoggerConfig 也可以配置一个多个 AppenderRef 元素, 处理日志记录事件时将调用它们的每一个--> <!...ERROR的接收打印其他的都拒绝 业务日志打印: 这里我们单独配置了日志记录器Logger并将其name属性设置为了link.elastic只要Java代码的日志记录器满足前缀为link.elastic

1.7K40
  • ​可观测性之Log4j2优雅日志打印

    LoggerConfig(记录器配置): LoggerConfig对象是日志记录配置声明Logger时创建的。...Log4j 2 还支持自定义日志级别 ,下表说明了级别过滤的工作原理。,垂直标题显示 LogEvent 的级别,而水平标题显示与适当的 LoggerConfig 关联的级别。...链路追踪Id打印: 详细的日志打印可以Java代码设置链路追踪Id TraceId打印日志的时候可以将其打印出来。下面就来详细看下满足这样5个需求的日志配置是如何实现的吧。...-- LoggerConfig 也可以配置一个多个 AppenderRef 元素, 处理日志记录事件时将调用它们的每一个--> <!...ERROR的接收打印其他的都拒绝业务日志打印: 这里我们单独配置了日志记录器Logger并将其name属性设置为了link.elastic只要Java代码的日志记录器满足前缀为link.elastic

    1.2K30

    Log4j2同步日志,混合日志和异步日志配置详解

    Log4j2记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppJava...> 混合同步和异步日志 Log4j-2.9及更高版本类路径上需要disruptor-3.3.4.jar更高版本。...Log4j-2.9之前,需要disruptor-3.0.0.jar更高版本。无需将系统属性“Log4jContextSelector”设置为任何值。 可以配置组合同步和异步记录器。...默认情况下,异步记录器不会将位置传递给I / O线程。如果您的某个布局自定义过滤器需要位置信息,则需要在所有相关记录器的配置设置“includeLocation = true”,包括根记录器。...默认情况下,异步记录器不会将位置传递给I / O线程。如果您的某个布局自定义过滤器需要位置信息,则需要在所有相关记录器的配置设置“includeLocation = true”,包括根记录器

    1.9K11

    Log4j2 日志

    Apache Log4j2 是 Log4j 的升级,对其前身 Log4j 1.x进行了重大改进,并提供了Logback 可用的许多改进,同时修复了 Logback 架构的一些固有问题。...Log4j2 的优势 性能提升: 多线程方案,异步记录器 (异常)的吞吐量比 Log4j 1.x 和 Logback 高 18 倍,延迟低几个数量级。...无垃圾:稳态日志记录期间,Log4j 2 独立应用程序是无垃圾的, Web 应用程序是低垃圾。这减少了垃圾回收器的压力,并可以提供更好的响应时间性能。...更多详细转看官网:Log4j – Apache Log4j 2 配置Log4j2 src下创建一个 log4j2.xml 文件,将以下代码添加进入即可 <?...编写代码 日志级别 Log4j2日志有六个级别(level): trace:追踪,是最低的日志级别,相当于追踪程序的执行,一般不怎么使用 debug:调试,一般开发,都将其设置为最低的日志级别

    34610

    Jmeter(四十二) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 -番外篇(详解教程)

    -- Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时, 你会看到log4j2内部各种详细输出。...可以设置成OFF(关闭)、WARN(输出告警信息)Error(只输出错误信息)。 级别可以配置为TRACE,DEBUG,INFO,WARN,ERROR,ALLOFF之一。...5.小结 5.1日志级别设置 从JMeter3.2开始,日志级别不再在jmeter.properties设置,而是通过apache log4j2.xml....注意:程序会打印高于等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。...info,也可以GUI界面临时设置日志级别 log4j2定义了8个级别的日志,优先级从高到低依次为: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE

    98530

    全网最全、最细致的Java日志框架以及门面技术。

    Java日志介绍 Java日志框架内中的xml配置文件的标签是固定的,不可以自定义 配置文件基本结构: 以标签开头, 包含0多个子标签, 包含0多个标签, 最多只能有一个标签。...8.2 Log4j2特征 性能提升:多线程场景,异步记录器的吞吐量比Log4j 1.x 和 Logback高18倍,延迟低。...配置了的情况下,Log4j2自动识别插件并使用他们。 无垃圾回收机制:稳态日志记录期间,Log4j2 独立应用程序是无垃圾的,web应用程序中式低垃圾。...(Log4j2与SLF4J联合使用.class); // slf4j 存在5种日志输出级别,此时使用是slf4j的记录器,而不是log4j2的,所以只能输出slf4j的五种级别。...logger = LoggerFactory.getLogger(Log4j2与SLF4J联合使用.class); // slf4j 存在5种日志输出级别,此时使用是slf4j的记录器,而不是log4j2

    3.2K30

    忽视日志吃大亏,手把手教你玩转 SpringBoot 日志

    它可以帮助开发人员了解程序中发生了什么,以及某些情况下为什么会发生错误异常。...应用程序,ERROR 级别的日志记录通常用于记录一些致命性的异常信息,以便能够及时发现并处理这些问题。...我们想里层输出 debug 级别,外层输出info 级别,我们可以这么设置。...此外,它还支持条件日志记录(根据日志级别、日志记录器名称时间等),以及滚动文件的大小日期等。 Log4j2的配置文件格式较复杂,但它在配置文件中提供了大量的选项来控制日志记录。...它采用了异步记录器,利用了多线程来提高性能。 Log4j2性能方面更加强大。它使用了异步记录器和多线程,还引入了RingBuffer数据结构和Disruptor库来加速日志事件的传递和处理。

    2.6K51

    spring引入log4j2日志框架

    Log4j2是Apache的一个开源项目,通过使用Log4j2,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...log4j2主要用来打印系统重要的日志信息,解决系统运营过程中出现的错误日志的记录,可以不需要修改业务代码,重启web服务,需要修改配置文件就能进行日志拦截的修改。...--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出--> <!...代码下载:https://gitee.com/hong99/spring/issues/I1N1DF 最后 企业中都是通过一些SLF4J commons-loggingp这些门面框架,而不是直接使用...日志框架对于系统的问题根据和记录非常重要,特别在系统排除一些异常过程,通过日志来跟踪异常起到关键性作用,所以日志框架极其重要,比较成熟规模的互联网公司会将日志放到统一的日志分析平台如:kibana

    1.6K50

    Log4j2-Log4j 2介绍及使用

    Log4j 1.x和Logback都会在重新配置的时候失去事件,而Log4j2不会。Logback,Appender当中的异常对应用从来都是不可见的。...支持自定义日志级别。自定义日志级别可以代码配置定义。 支持Lambda表达式。运行在Java 8上的客户端代码可以使用Lambda表达式来实现仅在对应的日志级别启用时延迟构造日志消息。...Log4j 1.x已知存在死锁问题。其中很多已经Logback修复,但很多Logback的class文件仍然需要在更高的编译级别同步。...表格,垂直列为LogEvent的级别,水平列为从合适的LoggerConfig中分配到的级别。二者的交点处标识了LogEvent是否会被通过并传递给下一步处理,是(YES)否(NO)。...DefaultConfiguration类中提供的默认配置将设置: 一个附加到根记录器的ConsoleAppender。

    69620

    logging总结 - log4j2使用流程

    --status : 这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出 monitorInterval : Log4j能够自动检测修改配置文件和重新配置本身..., 设置间隔秒数。...--additivity="false"表示该logger输出的日志不会再延伸到父层logger additivity="false"表示该logger输出的日志不会再延伸到父层logger...日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。...log4j(log for java): Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog

    1.6K20

    如何在spark on yarn的环境把log4j升级到log4j2

    大家知道spark on yarn,spark的系统日志都是按照log4j的方式写到每一个node上面的container目录下的,如果要实时看一个application的日志,很麻烦!...满打满算干了2天,搞定了这次日志框架的升级,虽然就为了打印这个进程号,但是log4j2还是比log4j灵活太多,内容也很丰富。...指定日志文件的位置和文件名称 property.filename = /bigdata/log/spark.log filter.threshold.type = ThresholdFilter # 只记录debug级别以上的日志...= rolling #根记录器,所有记录器的父辈, 指定根日志的级别 rootLogger.level = info rootLogger.appenderRef.console.ref = STDOUT...rootLogger.appenderRef.rolling.ref = rolling 记住:调试的时候要把status = error的error改为trace,这样才能看到log4j2初始化的日志

    2.9K30

    Apache Log4j2详解

    日志框架性能这么牛逼,那么作为追求卓越的程序猿就得好好学习Log4j2项目开发运用起来。...性能提升 Log4j 2包含基于LMAX Disruptor库的下一代异步记录器多线程场景,异步记录器的吞吐量比Log4j 1.x和Logback高18倍,延迟低。...高级过滤 与Logback一样,Log4j 2支持基于Log事件的上下文数据,标记,正则表达式和其他组件进行过滤。此外,过滤器还可以与记录器关联。...同步日志,混合日志和异步日志配置详解 配置文件详解 Log4j2配置文件详解 日志重复打印问题 如果Root的日志包含了Logger的日志信息,并且AppenderRef是一样的配置,则日志会打印两次...这是log4j2继承机制问题,Log4j2,logger是有继承关系的,root是根节点,log4j2,有个additivity的属性,它是子Logger 是否继承 父Logger 的 输出源(

    1.2K30

    Java日志体系(log4j2)

    与第一代log4j不同,log4j2完全重写了log4j的日志实现,并不是原有基础上进行的升级,解决了log4j的一些问题,例如:多线程下性能低下、api不支持占位符{}的使用、配置文件不能自动重新加载等...为什么说log4j多线程情况下性能低下呢?...而在log4j2,由于引入了异步logger,使得log4j2的性能得到了巨大的提升,相比于log4j,logback而言,提升了数10倍之多。关于异步logger的情况,我们后面进行讲解。...的Configuration对象,实际为XmlConfiguration; status:表示log4j2本身的日志信息打印级别,当设置为TRACE 或者 DEBUG 级别时,便会打印出...ref="File"/> 节点下,对某个类单独进行日志配置,便可使用节点; 上例,我们对名称为com.jiaboyan.logDemo.log4j2Demo

    2.8K90

    Spring Boot(十)Logback和Log4j2集成与日志发展史

    Log4j2是Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback可用的许多改进,同时修复了Logback架构的一些固有问题。...Logback和Log4j2Spring Boot的实现。...日志组成解读: 日期和时间:毫秒精度,易于排序 日志级别:trace、debug、info、warn、error(日志级别依次从低到高) 进程ID ---分隔符 线程名称:括方括号(可以截断控制台输出...) 记录器名称:这通常是源类名(通常缩写) 日志具体信息 2.2 输入文件 如果需要输出日志到文件,只需要在application.properties配置文件设置:logging.filelogging.path...,示例如下: logging.level.root=info logging.file=D:\\log\\my.log 可以通过设置日志的级别,忽略更低级别的日志输出。

    1.5K20
    领券