Log4j2.XML属性简介

XML基本结构

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Properties>
    <Property name="name1">value</property>
    <Property name="name2" value="value2"/>
  </Properties>
  <Filter type="type" ... />
  <Appenders>
    <Appender type="type" name="name">
      <Filter type="type" ... />
    </Appender>
    ...
  </Appenders>
  <Loggers>
    <Logger name="name1">
      <Filter type="type" ... />
    </Logger>
    ...
    <Root level="level">
      <AppenderRef ref="name"/>
    </Root>
  </Loggers>
</Configuration>

Configuration中的属性

属性名称描述
advertiser(可选)广告客户插件名称,将用于公布单个FileAppender或SocketAppender配置。唯一提供的广告客户插件是“multicastdns”。
dest“err”表示stderr,“out”表示stdout,这是一个文件路径或URL。
monitorInterval检查文件配置是否有更改之前必须经过的最短时间(秒)。
name配置的名称。
packages以逗号分隔的包名列表,用于搜索插件。每个类加载器只加载一次插件,因此更改此值可能不会对重新配置产生任何影响。
schema标识类加载器定位用于验证配置的XML架构的位置。仅当strict设置为true时有效。如果未设置,则不会进行架构验证。
shutdownHook指定JVM关闭时Log4j是否应自动关闭。关闭钩子在默认情况下是启用的,但是可以通过将该属性设置为“disable”来禁用
shutdownTimeout指定JVM关闭时,附加程序和后台任务将关闭多少毫秒。默认值为零,这意味着每个appender都使用其默认超时,并且不等待后台任务。
status应记录到控制台的内部Log4j事件的级别。此属性的有效值为“trace”、“debug”、“info”、“warn”、“error”和“fatal”。
strict允许使用严格的XML格式。JSON配置中不支持。
verbose加载插件时启用诊断信息。

 

Properties

Log4j 2支持在配置中指定标记以引用其他位置定义的属性的功能。当解释配置文件时,其中一些属性将被解析,而其他属性可能会传递到组件,在运行时将对其进行评估(等同于自定义属性)。

Log4j内置的上下文是:

字首语境
base64Base64编码数据。格式为 ${base64:base64_encoded_data}。例如:${base64:SGVsbG8gV29ybGQhCg==} 生成 Hello World!。
bundle资源包。格式是 ${bundle:BundleName:BundleKey}。捆绑包名称遵循包命名约定,例如:${bundle:com.domain.Messages:MyKey}。
ctx线程上下文映射(MDC)
date使用指定格式插入当前日期和/或时间
env系统环境变量。格式是 ${env:ENV_NAME} 以及 ${env:ENV_NAME:-default_value}。
jndi默认JNDI上下文中设置的值。
jvmrunargs通过JMX访问的JVM输入参数,但不是主参数;请参阅 RuntimeMXBean.getInputArguments(). 在Android上不可用。
log4jLog4j配置属性。表达式 ${log4j:configLocation} 和 ${log4j:configParentLocation} 分别提供到log4j配置文件及其父文件夹的绝对路径。
main值设置为 MapLookup.setMainArguments(String[])
mapMapMessage 中的值
sd结构化数据消息中的值。键“id”将返回没有企业号的structuredDaitaid的名称。键“type”将返回消息类型。其他键将从映射中检索单个元素。
sys系统属性。格式是 ${sys:some.property} 以及 ${sys:some.property:-default_value}。

 

Appenders

Appender负责将LogEvents传递到其目的地。Appender始终有一个名称,以便可以从Loggers中引用它们。

(后面会出单独的文章)

将日志写到ApacheCassandra数据库

将日志输出到控制台

当配置次要的Appenders

多个程序日志输出到同一文件

集中日志(收集,聚合大量日志数据并将其从许多不同的源移动到集中式数据存储中)

使用标准JDBC将日志事件写入关系数据库表

将格式化的日志事件发送到JMS目标

将日志事件写入关系数据库表

通过HTTP发送日志事件

将事件记录到ApacheKafka主题

将日志事件写入NoSQL数据库

发送电子邮件

将其输出写入由主机和端口指定的远程目标

输出以符合BSD Syslog格式

使用JeroMQ将日志事件发送到一个或多个ZeroMQ端点

Loggers

配置后的Appenders需要在Loggers中调用才会生效

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值