【发布时间】:2021-02-25 08:09:30
【问题描述】:
当我在 IDEA 中开发应用程序时,我应该将 logback.xml 放在哪里才能对应用程序产生影响?
似乎当您运行/调试时,IDEA 不会制作任何 jar,也不会调用 Maven 来构建某些东西。它是否直接从编译的 *.class 文件执行 main() ?如果是这样,我可以将 logback.xml 放在哪里才能生效?
【问题讨论】:
标签: intellij-idea logback
当我在 IDEA 中开发应用程序时,我应该将 logback.xml 放在哪里才能对应用程序产生影响?
似乎当您运行/调试时,IDEA 不会制作任何 jar,也不会调用 Maven 来构建某些东西。它是否直接从编译的 *.class 文件执行 main() ?如果是这样,我可以将 logback.xml 放在哪里才能生效?
【问题讨论】:
标签: intellij-idea logback
logback.xml 应该在 CLASSPATH 的根目录中可用。当你运行你的应用程序时,完整的 CLASSPATH 会在一开始就打印出来。当我将logback.xml 放入/src/main/resources(Maven 项目)时,它可以正常工作。还把它放在/src/test/resources 和logback-test.xml 名称中。
简单运行:
getClass().getClassLoader().getResource("/logback.xml");
并查看它是否返回某些内容或null。
如果您不使用 Maven 项目,请打开 项目结构 (Ctrl + Alt + Shift + S)并添加到 Modules 部分,选择包含 logback.xml 的文件夹并将其标记为 Sources(蓝色图标)。
【讨论】:
logback.xml。但可以肯定的是,只是不要将它放在/src/main/resources 中(并在你想要的地方手动复制它)。如果你想让logback.xml 外部能够快速更改配置,Logback 支持开箱即用地读取环境属性以及其他可能性。
对我来说:我只需要重新构建项目(不仅仅是重新运行或重新编译项目)。更改 src\main\resources\logback.xml 不会影响 logback,因为类加载器正在获取 target/ 文件夹中的 logback.xml,而不是 /src 文件夹。这是有道理的,因为目标是运行环境。因此,需要构建以将新的 xml 文件传输到目标。
【讨论】: