当前位置: 首页 > 面试题库 >

如何在Java Spring Boot中更改log4j2.xml的默认位置?

孟光耀
2023-03-14
问题内容

正如文档所述,Log4j2通过log4j2.xml根类路径中的配置文件与Spring Boot配合良好。

但是,当尝试将此文件移动到其他位置时,我无法在启动时将新位置传递给Spring。从文档中:

可以通过在类路径中包括适当的库来激活各种日志记录系统,并通过在类路径的根目录中或 在Spring
Environment属性指定的位置中logging.config
提供适当的配置文件来进一步自定义各种日志记录系统。

我尝试使用Java系统属性设置新位置

java -jar -Dlogging.config="classpath:/config/log4j2.xml" target/app.jar

或使用application.properties包含相关属性的外部

logging.config=classpath:/config/log4j2.xml

但是,我经常收到以下错误html" target="_blank">消息。

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

问题答案:

由于在指定的Spring参考文档,该logging.config属性不能被应用程序属性中设置,因为日志已经被初始化后,他们被读取。

解决方案是通过以下方式提供外部日志记录配置的路径:

java -Dlogging.config='/path/to/log4j2.xml' -jar app-current.jar


 类似资料:
  • Log4j2通过根类路径中的配置文件与Spring Boot配合得很好,与文档所述完全一致。 或使用包含相关属性的外部 但我经常会收到以下错误消息。

  • 问题内容: 我正在尝试使用pip安装Pandas,但遇到了一些麻烦。我刚运行成功下载了熊猫。但是,它没有下载到我想要的位置。这是我使用时看到的内容: 这样就安装好了。但是当我创建一个新的Python项目并在下面搜索熊猫时,我感到很困惑,因为它没有出现。但是,我过去下载的其他一些软件包的确出现了,所以我尝试看看它们在哪里。运行(我可以毫无问题地导入)产生: 这是在完全不同的目录中。为了确认我的错误,

  • 我正在尝试使用pip安装Pandas,但遇到了一些问题。我刚刚运行了,成功下载了pandas。但是,它没有下载到我想要的位置。以下是我使用时看到的内容: 所以它被安装了。但是当我创建一个新的Python项目并在System Libs/lib/python下搜索熊猫时,我感到困惑,因为它没有显示出来。然而,我过去下载的其他一些包确实出现了,所以我试着看看它们在哪里。运行(我可以毫无问题地导入)生成:

  • 问题内容: 当我运行docker时,下载的docker映像(似乎是)存储在某个地方。 由于该目录上的磁盘空间有限,因此我要同时将docker设置到多台机器上;有没有办法将此默认位置更改为ie ? 问题答案: 您可以使用option和您选择的目录来启动Docker守护程序。这将为Docker设置适当的运行时。 对于1.8版,应该是这样的: 对于早期版本,它将是: 从手册页:

  • 例如:如果jar文件位于“D:\apps\jar.jar”中,则日志路径为“D:\log”;如果jar文件位于“C:\apps\jar.jar”中,则日志路径为“C:\log” 我尝试将log4j2.xml中的行(如下)更改为: 并在初始化记录器之前调用此函数:

  • 问题内容: 通过卷API创建卷时,也就是说,由于容器卷模式现在不再是最佳做法,因此: 例如,我想在/ data中存在docker卷(安装在不同的物理卷中)。 这与符号链接是不可能的,绑定绑定是可能的,但是我想知道Docker中是否有一些配置可以更改每个单独卷的默认位置。 问题答案: 您可以更改泊坞存储其文件,包括通过改变它的一个卷启动参数叫。 如果您使用systemd进行服务管理,则该文件通常位于

  • 当通过卷API创建卷时,也就是说,容器卷模式现在不一定是最佳实践: 例如,我希望docker卷存在于/data中(装载在不同的物理卷中)。 这对于符号链接是不可能的,对于绑定挂载也是可能的,但是我想知道Docker中是否有一些配置来更改每个单独卷的默认位置。

  • 当通过volume API创建卷时,即容器卷模式现在不再是最佳实践: 例如,我希望docker卷存在于/data(挂载在不同的物理卷中)中。 对于符号链接是不可能的,对于绑定挂载是可能的,但是我想知道Docker中是否有一些配置来更改每个单独卷的默认位置。