博客
关于我
Log4j2.xml中动态读取配置
阅读量:792 次
发布时间:2023-02-06

本文共 781 字,大约阅读时间需要 2 分钟。

log4j2支持多种方式获取值添加进入日志中,这种机制源于其lookup功能的设计。为了深入理解这一特性,可以查阅官方文档或查看相关代码,例如org.apache.logging.log4j.core.lookup包下的实现,这将有助于掌握框架的内部工作原理,并在需要时自行扩展功能。

以下是一些常用的配置方式,基于实际使用经验总结:

1. bundle配置方式

${bundle:BundleName:BundleKey}

  • 作用:通过bundle标识符指定读取配置文件的前缀。
  • 结构解析
    • BundleName:通常是配置文件的文件名,例如application.properties
    • BundleKey:指定需要读取的具体配置键。
  • 示例
    ${bundle:application:log.path}
    这将从application.properties中读取log.path的值,类似于return ResourceBundle.getBundle(bundleName).getString(bundleKey)

2. sys配置方式

${sys:some.property}${sys:some.property:-default_value}

  • 作用:用于读取系统属性,类似于System.getProperty()方法,适用于JVM参数等环境变量。
  • 结构解析
    • some.property:指定需要读取的属性键。
    • default_value:指定默认值,若系统属性中未找到对应键时使用。
  • 示例
    ${sys:test.log.path:-/opt/logs/}
    这将从系统属性中读取test.log.path的值,若未找到则使用默认值-/opt/logs/

通过以上方式,log4j2提供了灵活的配置方式,能够根据具体需求动态读取配置信息。

转载地址:http://ddufk.baihongyu.com/

你可能感兴趣的文章
Linux:安装npm
查看>>
Linux:安装Redis
查看>>
Linux:安装ruby
查看>>
Linux:安装rvm
查看>>
Linux:服务器监控神器Netdata
查看>>
lirs cache java库_Java 缓存库 — Caffeine
查看>>
list extend() 索引,不仅将列表元素插入到末尾
查看>>
List GroupBy真实用法,Reflection(反射)用法,Enum用法,正则,搜索下拉布局
查看>>
list set map的区别
查看>>
List 去重的 6 种方法,这个方法最完美
查看>>
List 去重的 6 种方法,这个方法最完美!
查看>>
List 集合去重的 3 种方法
查看>>
List,Set,Map三者的区别(不同点)
查看>>
list.pop 的 numpy 等效项?
查看>>
list.remove()时报java.lang.UnsupportedOperationException异常错误的处理
查看>>
list.size()和list.isEmpty()的区别和效率以及CollectionUtils.isEmpty()的使用
查看>>
List<Map>遍历修改map值
查看>>
List<T> to DataTable
查看>>
ListBox 循环删除当前项
查看>>
listbox相互传值
查看>>