当前位置: 首页 > 知识库问答 >
问题:

使用系统属性的log4j2配置

董同
2023-03-14

您好,我最近在spring项目中将日志记录从log4j迁移到了log4j2。

一切正常,但我想知道如何设置属性

在log4j中,我使用

我知道我可以在log4j2中使用$(sys:my parameter name:-默认值)进行替换,但是有没有一种直接的方法可以通过在log4j2中直接引用参数的属性名来覆盖参数,就像在log4j中一样,比如说myAppender。parameterNameForRollowVersionInLog4J2=我的值


共有1个答案

虞裕
2023-03-14

不,Log4j2不会自动将每个属性与系统属性关联。

我不知道你为什么要这样做,因为那样会很麻烦。例如,要设置所需的最大文件大小

-DmyAppender.policies.sizeBasedTriggeringPolicy.max=10MB

那怎么更好?但是如果你真的想要,你可以自由地去做

<property name="myAppenderMax">${sys:myAppender.policies.sizeBasedTriggeringPolicy.max:=10MB}</property>

然后将${myAppenderMax}指定为appender配置中的值。

 类似资料:
  • 在Spring靴1.5上是否可能。2使用log4j2属性配置而不是xml? 官方spring文档上的日志文档似乎表明只支持xml。 https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html

  • 我正在从事一个基于java web的大型项目,该项目基于Spring和Hibernate的一些旧版本,并使用log4j 1.2x。由于最近在log4j2中发现了漏洞,我们已被指示升级到log4j2的最新版本。我正在尝试实现log4j2log4j1桥,这样就不必更新应用程序中的所有日志代码。除了我无法指定日志文件的存储位置外,一切都正常,因为log4j1桥似乎不支持系统属性。在启动tomcat服务器

  • 问题内容: 配置 : Spring 2.5,Junit 4,Log4j 从系统属性中指定log4j文件位置 在运行时,使用-D java选项设置系统属性。一切都很好。 问题/我需要什么: 在单元测试时,未设置系统属性,并且文件位置未解析。 App使用Spring,想简单地配置Spring以 设置 系统属性。 更多信息: 要求仅用于配置。无法引入新的Java代码或IDE中的条目。理想情况下,Spri

  • 问题内容: 使用Gradle执行JUnit 5测试时,我找不到如何设置系统属性。标准任务可以配置如下: 但是,任务似乎没有这种选择。 问题答案: 更新: 请注意,JUnit团队开发的JUnit Platform 1.2中已弃用,而在1.3中不再使用。请在Gradle 4.6或更高版本中切换到Gradle的标准任务。详细信息在这里。 正如我在这里提到的,如果您仍然使用过时的话,可以像这样设置系统属性

  • 但是房产没有被选中。例如,下面的代码创建一个${log-path}文件夹来存储日志文件,而不是所需的logs文件夹。 我做错了什么?

  • 概述 此工具是针对System.getProperty(name)的封装,通过此工具,可以获取如下信息: Java Virtual Machine Specification信息 SystemUtil.getJvmSpecInfo(); Java Virtual Machine Implementation信息 SystemUtil.getJvmInfo(); Java Specificati