我在登录Solr时遇到问题。我希望它不要在标准输出上写一切(我的意思是glassfish server.log)。我希望它使用log4j并将其消息写入单独的文件。我已经创建了log4j.xml文件,但我不知道是否可以将它添加到.war文件中。我已经尝试了外部log4j.xml文件并设置了JVM选项-Dlog4j.configuration = file:/ {path_to_file},但它只能部分工作。我在glassfish上安装了一些其他应用程序,所有应用程序都开始写入此文件。任何帮助赞赏。
答案 0 :(得分:2)
你也必须将Solr的slf4j切换到log4j。 据我所知,你必须修补战争。
如果您使用的是蚂蚁,则此代码段可能会帮助您修补它:
<project name="solr-war-patching" default="patch" basedir=".">
<target name="patch" description="Patches solr war file">
<unjar src="solr.war" dest="solr.war.folder"/>
<delete file="solr.war.folder/WEB-INF/lib/slf4j-jdk14-1.6.1.jar" />
<delete file="solr.war.folder/WEB-INF/lib/log4j-over-slf4j-1.6.1.jar" />
<copy file="slf4j-log4j12-1.6.1.jar" todir="solr.war.folder/WEB-INF/lib" />
<copy file="log4j-1.2.16.jar" todir="solr.war.folder/WEB-INF/lib" />
<jar destfile="solr_patched.war">
<fileset dir="solr.war.folder" includes="**/**.*" />
</jar>
</target>
</project>
你必须在你调用脚本的文件夹中拥有sl4j api的相应jar文件...
log4j.xml可以放在相应的app容器文件夹中的war之外。