logback.xml并从JetBrains IDEA IDE运行应用程序

thigvfpy  于 2023-03-29  发布在  其他
关注(0)|答案(2)|浏览(118)

当我在IDEA中开发应用程序时,我应该把logback.xml放在哪里才能对应用程序产生影响?
看起来当你运行/调试IDEA的时候,它并没有生成任何jar文件,也没有调用Maven来构建一些东西。它是直接从编译后的 *.class文件中执行main()吗?如果是,我可以把logback.xml放在哪里,这样它才能起作用?

klr1opcd

klr1opcd1#

logback.xml应该在CLASSPATH的根目录下可用。当你运行你的应用程序时,完整的CLASSPATH在一开始就打印出来了。当我把logback.xml放在/src/main/resources(Maven项目)中时,它工作起来没有任何问题。把它放在/src/test/resources中,名字是logback-test.xml,也有存在。
只需运行:

getClass().getClassLoader().getResource("/logback.xml");

然后看看它是否返回一些东西或null
如果您没有使用Maven项目,请打开 Project structure(Ctrl + Alt + Shift + S)并在 Modules 部分中添加选择包含logback.xml的文件夹并将其标记为 Sources(蓝色图标)。

nvbavucw

nvbavucw2#

我需要重新构建项目(不仅仅是重新运行或重新编译项目)。更改src\main\resources\logback.xml不会影响logback,因为类加载器正在拾取target/文件夹中的logback.xml,而不是/src文件夹。这是有意义的,因为target是运行环境。因此,需要构建将新的xml文件传输到target。

相关问题