Spring Log4j2 xml 文件位置
Spring Log4j2 xml file location
使用 Spring 2.0.5 和 Log4j2
如果我将文件 log4j2.xml 放在资源文件夹中,就会发现按预期工作。
但是,发现 monitorInterval="60" 的 log4j2 选项非常有用,好像某些生产问题可以在不重新启动的情况下增加某些 class 上的日志记录。但是,如果 log4j2.xml 嵌入到 jar 中,当然无法修改。到目前为止,我能做的最好的事情是使用 log4j2.xml 的 2 个副本,一个在资源中,另一个在文件夹中 运行ning jar from.
然后我可以运行:
java -Dlog4j.configurationFile=log4j2.xml -jar myapp.jar
如果从 Maven spring-boot 插件或 Eclipse 启动,它似乎工作相同。
尝试了很多方法,例如设置 class 路径、绝对文件名等,但没有成功
我的问题是如何从资源文件夹中删除 log4j2.xml 文件并仅在启动时在命令行中指定它 spring?
我不是很清楚你的问题,但我可以提供以下信息,希望能解决这个问题:
- Log4j 2.12.0 添加了对 Spring Cloud Config 的支持并增强了对 Spring Boot 的支持。从那个版本开始,您可以包含一个名为 log4j2.system.properties 的文件,并将您想要定义的任何系统属性放在那里。它们将在 Log4j 初始化之前设置。因此,如果需要,您可以在配置中指定完整的 URL 而不是命令行。您还可以将定义添加到名为 log4j2.component.properties.
的文件中
- 对 Spring Cloud Config 的支持允许您将配置放在 Spring Cloud Config 服务器中。有关详细信息,请参阅 Spring CLoud Config support。
- Spring 引导初始化日志记录至少 3 次。第一个通常是因为 SpringApplication class 声明了一个 Logger,因此在其他任何事情发生之前初始化日志记录。该配置将使用 "normal" log4j 2 初始化。之后 Spring 会影响日志记录初始化的方式,主要是因为 Spring Boot 设置 class 路径以将 BOOT-INF/lib 目录中的 jars 包含在 Spring Boot jar 中。
通过使用我在上面概述的配置选项之一,您可以将日志记录配置移到应用程序之外,并且您不需要在资源目录中进行日志记录配置。事实上,如果您查看 Log4j 中的 sample Spring Cloud Config Application,您会发现它不包含配置文件。
使用 Spring 2.0.5 和 Log4j2 如果我将文件 log4j2.xml 放在资源文件夹中,就会发现按预期工作。 但是,发现 monitorInterval="60" 的 log4j2 选项非常有用,好像某些生产问题可以在不重新启动的情况下增加某些 class 上的日志记录。但是,如果 log4j2.xml 嵌入到 jar 中,当然无法修改。到目前为止,我能做的最好的事情是使用 log4j2.xml 的 2 个副本,一个在资源中,另一个在文件夹中 运行ning jar from.
然后我可以运行:
java -Dlog4j.configurationFile=log4j2.xml -jar myapp.jar
如果从 Maven spring-boot 插件或 Eclipse 启动,它似乎工作相同。 尝试了很多方法,例如设置 class 路径、绝对文件名等,但没有成功
我的问题是如何从资源文件夹中删除 log4j2.xml 文件并仅在启动时在命令行中指定它 spring?
我不是很清楚你的问题,但我可以提供以下信息,希望能解决这个问题:
- Log4j 2.12.0 添加了对 Spring Cloud Config 的支持并增强了对 Spring Boot 的支持。从那个版本开始,您可以包含一个名为 log4j2.system.properties 的文件,并将您想要定义的任何系统属性放在那里。它们将在 Log4j 初始化之前设置。因此,如果需要,您可以在配置中指定完整的 URL 而不是命令行。您还可以将定义添加到名为 log4j2.component.properties. 的文件中
- 对 Spring Cloud Config 的支持允许您将配置放在 Spring Cloud Config 服务器中。有关详细信息,请参阅 Spring CLoud Config support。
- Spring 引导初始化日志记录至少 3 次。第一个通常是因为 SpringApplication class 声明了一个 Logger,因此在其他任何事情发生之前初始化日志记录。该配置将使用 "normal" log4j 2 初始化。之后 Spring 会影响日志记录初始化的方式,主要是因为 Spring Boot 设置 class 路径以将 BOOT-INF/lib 目录中的 jars 包含在 Spring Boot jar 中。
通过使用我在上面概述的配置选项之一,您可以将日志记录配置移到应用程序之外,并且您不需要在资源目录中进行日志记录配置。事实上,如果您查看 Log4j 中的 sample Spring Cloud Config Application,您会发现它不包含配置文件。