当我在IDEA中开发应用程序时,我应该把logback.xml放在哪里才能对应用程序产生影响?看起来当你运行/调试IDEA的时候,它并没有生成任何jar文件,也没有调用Maven来构建一些东西。它是直接从编译后的 *.class文件中执行main()吗?如果是,我可以把logback.xml放在哪里,这样它才能起作用?
klr1opcd1#
logback.xml应该在CLASSPATH的根目录下可用。当你运行你的应用程序时,完整的CLASSPATH在一开始就打印出来了。当我把logback.xml放在/src/main/resources(Maven项目)中时,它工作起来没有任何问题。把它放在/src/test/resources中,名字是logback-test.xml,也有存在。只需运行:
logback.xml
/src/main/resources
/src/test/resources
logback-test.xml
getClass().getClassLoader().getResource("/logback.xml");
然后看看它是否返回一些东西或null。如果您没有使用Maven项目,请打开 Project structure(Ctrl + Alt + Shift + S)并在 Modules 部分中添加选择包含logback.xml的文件夹并将其标记为 Sources(蓝色图标)。
null
nvbavucw2#
我需要重新构建项目(不仅仅是重新运行或重新编译项目)。更改src\main\resources\logback.xml不会影响logback,因为类加载器正在拾取target/文件夹中的logback.xml,而不是/src文件夹。这是有意义的,因为target是运行环境。因此,需要构建将新的xml文件传输到target。
src\main\resources\logback.xml
target/
/src
2条答案
按热度按时间klr1opcd1#
logback.xml
应该在CLASSPATH的根目录下可用。当你运行你的应用程序时,完整的CLASSPATH在一开始就打印出来了。当我把logback.xml
放在/src/main/resources
(Maven项目)中时,它工作起来没有任何问题。把它放在/src/test/resources
中,名字是logback-test.xml
,也有存在。只需运行:
然后看看它是否返回一些东西或
null
。如果您没有使用Maven项目,请打开 Project structure(Ctrl + Alt + Shift + S)并在 Modules 部分中添加选择包含
logback.xml
的文件夹并将其标记为 Sources(蓝色图标)。nvbavucw2#
我需要重新构建项目(不仅仅是重新运行或重新编译项目)。更改
src\main\resources\logback.xml
不会影响logback,因为类加载器正在拾取target/
文件夹中的logback.xml,而不是/src
文件夹。这是有意义的,因为target是运行环境。因此,需要构建将新的xml文件传输到target。